ATP - это архиватор TikTok видео, который автоматически скачивает ваши лайкнутые и сохранённые видео.
А потом регулярно проверяет их доступность и публикует видео Telegram-канал/чат при удалении их из TikTok.
Теперь вам больше никогда не придётся грустить об утрате ваших любимых видео!
Или гадать, что это было за видео такое, которое вы сохранили, а TikTok так бессовестно удалил?!
- Импорт видео из JSON-файла экспорта TikTok
- Автоматический импорт новых лайкнутых и сохранённых видео из TikTok
- Скачивание видео из TikTok (в т.ч. слайдшоу)
- Периодическая проверка доступности видео
- Отправка видео в Telegram при удалении их из TikTok
- Скачайте свои данные из TikTok (см. экспорт данных)
- Запустите приложение:
- Создайте
docker-composeфайл по примеру
services:
atp:
image: skrepkaq/atp
container_name: atp
volumes:
- ./config:/config
- ./downloads:/downloads
restart: unless-stopped- На linux создайте директории
config/иdownloads/чтобы не было проблем с правами - Запустите приложение
docker compose up- Установите ffmpeg
- Склонируйте репозиторий
git clone https://github.com/skrepkaq/ATP.git
cd ATP- Установите python зависимости и запустите приложение
# с помощью uv
uv sync
# с помощью pip
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# запуск
python3 -m atp- При первом запуске приложение автоматически создаст директорию
config/и конфигconfig/settings.conf - Поместите
user_data_tiktok.jsonкоторый вы скачали на 1 шаге в директориюconfig/ - Заполните параметры в
config/settings.conf:- Выберите какие видео вы хотите скачивать с помощью
DOWNLOAD_LIKED_VIDEOSиDOWNLOAD_SAVED_VIDEOS TIKTOK_USER- ваш username в TikTok (можно не заполнять если не хотите авто импорт из TikTok, тогда скачаются видео только изuser_data_tiktok.json, а новые видео качаться не будут, только если вы не обновитеuser_data_tiktok.json)TELEGRAM_BOT_TOKEN- токен вашего бота (получите у @BotFather)TELEGRAM_CHAT_ID- ID чата/канала для отправки уведомлений (можно оставить пустым, подробнее в разделе Telegram chat id)
- Выберите какие видео вы хотите скачивать с помощью
- Если заполнили
TIKTOK_USERдля авто импотра из TikTok: - Убедитесь, что TikTok доступен без ограничений из вашей сети или воспользуйтесь VPN или Proxy
- Запустите приложение повторно
- Для Docker советую
-dрежим т.к. процесс загрузки долгий
docker compose up -d && docker compose logs -f- Скрипт нужно запустить в фоне, чтобы он работал всегда и мог периодически импортировать и проверять видео.
Гуглите как это делается в вашей ОС
python3 -m atpВидео будут скачаны в downloads/ (можно изменить volume в compose.yaml или DOWNLOADS_DIR в config/settings.conf)
Загрузка видео может занять много часов! (~1 час на 1000 видео) И потребует ~4GB пространства на 1000 видео
- Теперь все ваши видео импортируются и скачаются
- А потом в 00 минут каждого часа видео будут проверяться на доступность и при их удалении из TikTok, публиковаться в Telegram
- И в 30 минут каждого часа из аккаунта
TIKTOK_USERбудут импортироваться и скачиваться новые лайкнутые и сохранённые видео
(проверяется всего_видео / 7 / 24 видео каждый час, а значит все видео будут проверяться за неделю)
Инструкция взята отсюда
- Нажмите «Профиль» в нижней части экрана приложения TikTok.
- Нажмите на кнопку меню ☰ в верхней части экрана, а затем выберите «Настройки и конфиденциальность».
- Нажмите «Аккаунт».
- Нажмите «Скачать ваши данные».
- Выберите формат файла - JSON.
- Для более быстрой загрузки выберите пункт где есть
Лайки и избранное(если не уверены, выбирайте «Все данные») - Если при запуске архиватора вы видите ошибку по типу
No videos were imported from user_data_tiktok.json...
Проверьте что не отключили импорт с помощьюDOWNLOAD_SAVED_VIDEOS/DOWNLOAD_LIKED_VIDEOSи/или запросите данные заново, но выберите «Все данные»
- Для более быстрой загрузки выберите пункт где есть
- Нажмите «Запросить данные».
- Дождитесь пока выгрузка сформируется. Если запросили все данные, то это может занять больше суток! (но обычно быстрее)
- Нажмите «Скачать ваши данные».
- Нажмите «Скачать данные», чтобы просмотреть статус запроса, и выберите «Скачать», если файл готов.
- Извлеките
user_data_tiktok.jsonиз скачанного архива
При первом запуске, если TELEGRAM_BOT_TOKEN указан, а TELEGRAM_CHAT_ID нет, приложение автоматически попытается определить ID чата
- Напишите боту в ЛС или добавьте его в нужный чат/канал и отправьте туда любое сообщение (а лучше тегните бота) перед запуском
После первого запуска бот должен отправить тестовое сообщение в чат
Если это не так, см. Проблемы с Telegram
- Сохранённые видео из TikTok
- Лайкнутые видео из TikTok, но не хотите открывать доступ к вашим лайкам для всех подряд (в настройках приватности)
- Зайдите в ваш TikTok аккаунт через браузер
- Экспортируйте cookies из браузера в формате Netscape
- С помощью yt-dlp (замените
chromeна свой браузер)
yt-dlp --cookies-from-browser chrome --cookies config/cookies.txt --skip-download --no-warnings "https://www.tiktok.com"- С помощью расширений для браузера вроде ещё можно
- Можете хоть вручную вытащить, тоже работает
- С помощью yt-dlp (замените
- Проверьте что cookies находятся в
config/cookies.txt(нужны только cookies TikTok, остальные можете удалить) - Запустите приложение как обычно
- Теперь видео будут импортироваться при любых настройках приватности!
Если из вашей сети недоступен TikTok/Telegram, настройте proxy (или VPN)
Добавьте PROXY в config/settings.conf, например:
PROXY=socks5://user:pass@127.0.0.1:65520
Поддерживаемые протоколы: http, https, socks5
Если в логах вы видите много Network errors, возможно TikTok не нравится стандартный UserAgent, попробуйте заменить USER_AGENT на свой в config/settings.conf
У меня каким-то образом невалидный UserAgent работает лучше всего, так что тоже попробуйте передать привет маме создателя анти-бот защиты)
USER_AGENT=hi mom!
Если видео не скачиваются при первом запуске:
- Удалите базу данных
config/tiktok_videos.dbесли только что создали её, чтобы в ней не было видео со статусом failed - Проверьте доступность TikTok из вашей сети, при необходимости настройте VPN или Proxy
- Убедитесь что ваш аккаунт не приватный и ваши лайкнутые видео видно всем (в настройках приватности) или настройте Cookies
- Если в логах вы видите много
Network errors, попробуйте настроить UserAgent вconfig/settings.conf
Если уведомления не отправляются:
- Проверьте доступность Telegram из вашей сети, при необходимости настройте VPN или Proxy
- Убедитесь, что бот добавлен в чат/канал
- Проверьте права бота в чате/канале
- Проверьте правильность
TELEGRAM_BOT_TOKENиTELEGRAM_CHAT_IDвconfig/settings.conf - Если
TELEGRAM_CHAT_IDпустой, отправьте любое сообщение (а лучше тегните бота) в чат/канал/ЛС бота и перезапустите приложение, бот должен отправить тестовое сообщение в этот чат - Если сообщение не приходит, гуглите как найти ID чата в тг и заполните его вручную
Если у вас возникли проблемы или есть предложения по улучшению:
- Создайте issue в репозитории
- Напишите мне в Telegram @skrepkaq