С точки зрения загрузки TikTok обманчив: он кажется простым, потому что ролики короткие, а адреса аккуратные, но настоящий конвейер воспроизведения выполняет в фоне удивительно много работы. Каждый адрес play_addr подписан под запросившую сессию, истекает за считаные минуты и отдаётся по-разному в зависимости от того, пришёл ли запрос из авторизованной сессии в приложении, из неавторизованной веб-сессии или от стороннего парсера. Какой вариант покажет TikTok — с водяным знаком, без него, с низким или полным битрейтом — определяется тем, на какой из этих контекстов запрос похож. Поэтому два разных загрузчика могут вернуть две версии «одного и того же» ролика, и ни один из них не ошибается: они просто работают в разных контекстах.
Практическое следствие в том, что файл нужно осматривать, а не принимать на веру. Ни адрес, ни диалог сохранения не сообщают, какой вариант пришёл, поэтому единственная надёжная проверка — открыть результат: посмотреть размеры, послушать звук, проверить наличие наложения. Если публикация ваша, ваш собственный оригинал в приложении TikTok — источник лучше, чем любая перезапись опубликованной версии.
Срок действия — вторая повторяющаяся неожиданность. Подписанный адрес действителен несколько минут и только для того запроса, который его получил, из-за чего подход «скопировать адрес и вставить в другом месте» ломается характерным и сбивающим с толку образом: он срабатывает, если действовать быстро, и через несколько минут выдаёт 403, так что люди заключают, будто инструмент ненадёжен, вместо того чтобы понять, что у ссылки был срок. Работа со страницей, пока видео действительно воспроизводится, снимает весь этот класс проблем.
Ограничения доступа в TikTok строже, чем кажется на первый взгляд. Закрытый аккаунт требует одобренной подписки. Видео «только для друзей» требует взаимной подписки — это другое и более узкое условие. Оба ограничения применяются ещё до того, как видео будет отправлено вашей сессии, поэтому ни одно не обходится настройкой загрузчика: решение лежит в отношениях внутри TikTok, и даже наличие доступа не отвечает на вопрос, можно ли хранить копию.
И последнее различие, которое вызывает настоящую путаницу: TikTok и Douyin — не один и тот же сервис. У них общий владелец, но разные приложения, разные библиотеки и разные схемы адресов, поэтому ссылка с douyin.com не является ссылкой TikTok, а результаты на одном ничего не говорят о другом. Проверьте имя хоста, прежде чем делать выводы о поддержке.