Skip to content
skrepkaqPublic

About

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

Resources

Stars

77 stars

Watchers

1 watching

Forks

Repository files navigation

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

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

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

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

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

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

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

Запуск

  1. Скачайте свои данные из TikTok (см. экспорт данных)
  2. Запустите приложение:

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

services:
  atp:
    image: skrepkaq/atp
    container_name: atp
    volumes:
      - ./config:/config
      - ./downloads:/downloads
    restart: unless-stopped
  • На linux создайте директории config/ и downloads/ чтобы не было проблем с правами
  • Запустите приложение
docker compose up

Без docker

  • Установите 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
  1. При первом запуске приложение автоматически создаст директорию config/ и конфиг config/settings.conf
  2. Поместите user_data_tiktok.json который вы скачали на 1 шаге в директорию config/
  3. Заполните параметры в 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)
  4. Если заполнили TIKTOK_USER для авто импотра из TikTok:
    • Импорт лайков - убедитесь что ваш аккаунт не приватный и ваши лайкнутые видео видно всем (в настройках приватности) или настройте Cookies
    • Импорт сохранённых видео - работает только с Cookies, как настроить см. Cookies
  5. Убедитесь, что TikTok доступен без ограничений из вашей сети или воспользуйтесь VPN или Proxy
  6. Запустите приложение повторно

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

  • Для Docker советую -d режим т.к. процесс загрузки долгий
docker compose up -d && docker compose logs -f

Запуск без Docker

  • Скрипт нужно запустить в фоне, чтобы он работал всегда и мог периодически импортировать и проверять видео.

Гуглите как это делается в вашей ОС

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

Инструкция взята отсюда

  1. Нажмите «Профиль» в нижней части экрана приложения TikTok.
  2. Нажмите на кнопку меню ☰ в верхней части экрана, а затем выберите «Настройки и конфиденциальность».
  3. Нажмите «Аккаунт».
  4. Нажмите «Скачать ваши данные».
  5. Выберите формат файла - JSON.
    • Для более быстрой загрузки выберите пункт где есть Лайки и избранное (если не уверены, выбирайте «Все данные»)
    • Если при запуске архиватора вы видите ошибку по типу No videos were imported from user_data_tiktok.json...
      Проверьте что не отключили импорт с помощью DOWNLOAD_SAVED_VIDEOS/DOWNLOAD_LIKED_VIDEOS и/или запросите данные заново, но выберите «Все данные»
  6. Нажмите «Запросить данные».
  7. Дождитесь пока выгрузка сформируется. Если запросили все данные, то это может занять больше суток! (но обычно быстрее)
  8. Нажмите «Скачать ваши данные».
  9. Нажмите «Скачать данные», чтобы просмотреть статус запроса, и выберите «Скачать», если файл готов.
  10. Извлеките user_data_tiktok.json из скачанного архива

Telegram chat id

При первом запуске, если TELEGRAM_BOT_TOKEN указан, а TELEGRAM_CHAT_ID нет, приложение автоматически попытается определить ID чата

  • Напишите боту в ЛС или добавьте его в нужный чат/канал и отправьте туда любое сообщение (а лучше тегните бота) перед запуском

После первого запуска бот должен отправить тестовое сообщение в чат

Если это не так, см. Проблемы с Telegram

Cookies

Настройке Cookies если хотите автоматически импортировать:

  • Сохранённые видео из TikTok
  • Лайкнутые видео из TikTok, но не хотите открывать доступ к вашим лайкам для всех подряд (в настройках приватности)
  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 TikTok, остальные можете удалить)
  4. Запустите приложение как обычно
  5. Теперь видео будут импортироваться при любых настройках приватности!

Proxy

Если из вашей сети недоступен TikTok/Telegram, настройте proxy (или VPN)

Добавьте PROXY в config/settings.conf, например:

PROXY=socks5://user:pass@127.0.0.1:65520

Поддерживаемые протоколы: http, https, socks5

UserAgent

Если в логах вы видите много Network errors, возможно TikTok не нравится стандартный UserAgent, попробуйте заменить USER_AGENT на свой в config/settings.conf

У меня каким-то образом невалидный UserAgent работает лучше всего, так что тоже попробуйте передать привет маме создателя анти-бот защиты)

USER_AGENT=hi mom!

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

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

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

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

Проблемы с Telegram

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

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

Поддержка

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

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

About

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

Resources

Stars

77 stars

Watchers

1 watching

Forks

Contributors

Languages