Skip to content

skrepkaq/ATP

Repository files navigation

ATP - TikTok Архиватор

ATP - это архиватор TikTok видео, который автоматически скачивает ваши лайкнутые видео.

А потом регулярно проверяет их доступность и публикует видео в телеграм канал/чат при удалении их из TikTok.

Теперь вам больше никогда не придётся грустить об утрате ваших любимых видео!

Или гадать, что это было за видео такое, которое вы сохранили, а TikTok так бессовестно удалил?!

Функциональность

  • Импорт видео из JSON-файла экспорта TikTok
  • Автоматический импорт новых лайкнутых видео пользователя
  • Скачивание видео с TikTok (в т.ч. слайдшоу)
  • Периодическая проверка доступности видео
  • Отправка видео в Telegram при удалении их из TikTok

Первый запуск

Импортируем и качаем видео из JSON выгрузки

  1. Создайте docker-compose файл по примеру
  2. Скачайте свои данные из TikTok в формате JSON
  3. Запустите приложение

Docker

docker compose up atp-from-file

Без docker

  • Установите ffmpeg
  • Склонируйте репозиторий
git clone https://github.com/skrepkaq/ATP.git cd ATP
  • Установите python зависимости и запустите приложение
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # или просто uv sync python3 -m atp --download-from-file
  1. При первом запуске приложение автоматически создаст директорию config/ и скопирует примеры конфигурационных файлов:
    • config/settings.conf - основные настройки
    • config/settings-docker.conf - настройки для Docker (опционально)
  2. Поместите user_data_tiktok.json в директорию config/
  3. Измените Настройки импорта видео в config/settings.conf если нужно
  4. Убедитесь, что TikTok доступен без ограничений из вашей сети или воспользуйтесь VPN
  5. Запустите приложение повторно
Для docker рекомендую -d режим т.к. процесс загрузки долгий
docker compose up atp-from-file -d && docker compose logs atp-from-file -f

Видео будут скачаны в downloads/ (можно изменить volume в compose.yaml или DOWNLOADS_DIR в config/settings.conf)

Загрузка видео может занять много часов! (~1 час на 1000 видео) И потребует ~4GB пространства на 1000 видео

Если после окончания загрузки вы видите сообщение:

X videos with status `new` remaining

Можно запустить скрипт повторно и докачать зависшие видео.

Запуск проекта

  1. Заполните параметры в config/settings.conf:

    • TIKTOK_USER - ваш username в TikTok
    • TELEGRAM_BOT_TOKEN - токен вашего бота (получите у @BotFather)
    • TELEGRAM_CHAT_ID - ID чата/канала для отправки уведомлений (можно оставить пустым, приложение попытается определить автоматически при первом запуске)
  2. Убедитесь что ваши лайкнутые видео видно всем (в настройках приватности) или настройте cookies

Вы можете поставить DOWNLOAD_FROM_TIKTOK=false в config/settings.conf.

Тогда видео всё ещё будут проверяться на доступность, но не будут автоматически импортироваться из TikTok

Примечание: При первом запуске, если TELEGRAM_BOT_TOKEN указан, а TELEGRAM_CHAT_ID нет, приложение автоматически попытается определить ID чата. Напишите боту в ЛС или добавьте его в нужный чат/канал и отправьте туда любое сообщение перед запуском. После первого запуска бот должнен отправить тестовое сообщение в чат

Docker (рекомендуется)

docker compose up -d

Запуск без Docker

  • Скрипт нужно запустить в фоне, чтобы он работал всегда. Гуглите как это делается в вашей ОС
python3 -m atp

Готово!

  • Теперь в 00 минут каждого часа видео будут проверяться на доступность и при их удалении из TikTok, публиковаться в Telegram

(проверяется всего_видео / 7 / 24 видео каждый час, а значит все видео будут проверяться за неделю)

  • И в 30 минут каждого часа с аккаунта TIKTOK_USER будут импортироваться и скачиваться новые лайкнутые видео

Устранение неполадок

Проблемы с доступом к TikTok

Если видео не скачиваются при первом запуске:

  1. Удалите базу данных config/tiktok_videos.db если только что создали её, что бы в ней не было failed видео
  2. Проверьте доступность TikTok из вашей сети
  3. При необходимости настройте VPN
  4. Убедитесь что ваши лайкнутые видео видно всем (в настройках приватности) или настройте cookies
  5. Если в логах вы видите много Network error's, включите/выключите ANTI_BOT_BYPASS в config/settings.conf

Проблемы с Telegram

Если уведомления не отправляются:

  1. Убедитесь, что бот добавлен в чат/канал
  2. Проверьте права бота в чате/канале
  3. Проверьте правильность TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID в config/settings.conf
  4. Если TELEGRAM_CHAT_ID пустой, отправьте любое сообщение в чат/канал/ЛС бота и перезапустите приложение, бот должнен отправить тестовое сообщение в этот чат
  5. Если сообщение не приходит, гуглите как найти ID чата в тг и заполните его вручную

Cookies

Если вы хотите автоматически импортировать лайкнутые видео из тиктока, но не хотите открывать доступ к вашим лайкам для всех подряд, настройте cookies:

  1. Зайдите в ваш TikTok аккаунт через браузер
  2. Экспортируйте cookies из браузера в формате Netscape
    • С помощью yt-dlp (замените chrome на свой браузер)
    yt-dlp --cookies-from-browser chrome --cookies config/cookies.txt --skip-download --no-warnings "https://www.tiktok.com" 
    • С помощью расширений для браузера вроде ещё можно
    • Можете хоть вручную вытащить, тоже работает
  3. Проверьте что cookies находятся в config/cookies.txt (нужны только cookies тиктока, остальные можете удалить)
  4. Запустите приложение как обычно
  5. Теперь видео будут импортироваться при любых настройках приватности!

Поддержка

Если у вас возникли проблемы или есть предложения по улучшению:

  • Создайте issue в репозитории
  • Напишите мне в Telegram @skrepkaq

About

ATP - архиватор TikTok видео. Вам больше никогда не придётся грустить об утрате ваших любимых видео!

Resources

License

Stars

Watchers

Forks

Contributors