AIKraft Agents

Evil0ctal/Douyin_TikTok_Download_API

🚀 Самостоятельно размещаемый скрепер TikTok и Douyin, а также загрузчик видео без водяных знаков — асинхронный REST API, MCP-сервер, CLI и веб-консоль для постов, профилей, комментариев и плейлистов. Пул самоисцеляющихся идентичностей, архив PostgreSQL, запуск через один docker compose. API для сбор

MCP⭐ 21 203Pythonпоследний релиз: v5.1.10
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Это самохостинговый API-инструмент для сбора данных и скачивания видео без водяных знаков с платформ TikTok и Douyin, работающий через Docker.

Зачем нужен

Инструмент позволяет автономно собирать информацию о постах, профилях, комментариях и плейлистах, сохраняя данные в собственную базу PostgreSQL. Он устраняет зависимость от сторонних сервисов, предоставляя REST API, MCP-сервер и веб-консоль для управления процессом.

Что можно реализовать

  • Создание локальных баз данных контента для последующего анализа или обучения моделей.
  • Интеграция с AI-агентами через MCP-сервер для автоматического получения медиаданных.
  • Сбор архивов видеоконтента без водяных знаков для личного или коммерческого использования.
  • Мониторинг активности авторов и поиск контента через встроенный API.

Ключевые возможности

  • Поддержка платформ TikTok и Douyin с возможностью скачивания видео без водяных знаков.
  • Автономное управление пулом идентификационных данных (self-healing identity pool) для обхода блокировок.
  • Наличие MCP-сервера для интеграции с современными LLM-фреймворками.
  • Простая установка через Docker Compose и наличие веб-консоли с документацией.
  • Хранение всех собранных данных в локальной базе PostgreSQL.

👤 Кому подойдёт: разработчики, исследователи данных, специалисты по AI (особенно работающие с RAG и агентами), владельцы контента

Релизы

v5.1.10patchbreaking
🕐 3 дн назад · релиз на GitHub ↗

Исправлены падения БД, проблемы с гостевыми аккаунтами и ошибки 502/500; поиск постов TikTok теперь требует авторизации.

  • Fixed: Исправлены ошибки 500 и 502: оптимизированы пулы соединений с Postgres, исправлена обработка скрытых комментариев Douyin.
  • Fixed: Внедрена автоматическая ротация заблокированных платформой гостевых аккаунтов для предотвращения срабатывания circuit breakers.
  • Breaking: Поиск постов в TikTok теперь требует авторизованного аккаунта; запросы гостей возвращают ошибку IDENTITY_LOGIN_REQUIRED.
  • Added: Добавлены переменные DTK_DB_POOL_SIZE и DTK_DB_MAX_OVERFLOW для настройки пула соединений, а также проверка диагностики.
  • Fixed: Исправлено отображение виджета watchlist в консоли: теперь он скрыт для демонстрационного аккаунта.
v5.1.9minor
🕐 3 дн назад · релиз на GitHub ↗

Релиз v5.1.9: улучшена работа прокси-пулов, добавлено зеркало для Chromium и исправлены счётчики TikTok.

  • Added: Добавлена возможность использования зеркала для загрузки Chromium при сборке образа браузера.
  • Added: Обновлена логика прокси-пулов: теперь IP-адрес хоста используется как дополнительный выход, увеличивая лимит идентичностей.
  • Fixed: Счётчики авторов TikTok теперь корректно считываются из statsV2, а не только из stats.
  • Fixed: Исправлено отображение в карточке пополнения: пропуски теперь показываются как пауза, а не как ошибки.
  • Added: В документацию добавлены повседневные команды dtkctl и инструкции по доступу к консоли.
v5.1.8minor
🕐 9 дн назад · релиз на GitHub ↗

Добавлены новые API для работы с живыми трансляциями и поддержка установки через GitHub-зеркала.

  • Added: Добавлены новые эндпоинты для получения данных по live_id, проверки статуса до 100 трансляций одним запросом и просмотра аудитории в Douyin.
  • Added: Установочный скрипт теперь поддерживает указание HTTPS-зеркала GitHub через переменную DTK_GH_PROXY для серверов в Китае.
  • Added: Появилась поддержка распознавания ссылок на прямые трансляции из приложения Douyin (v.douyin.com).
  • Added: Консоль и документация предупреждают о риске блокировки аккаунта при импорте данных авторизации.
  • Added: Установщик теперь запрашивает подтверждение перед клонированием репозитория с любого источника, отличного от GitHub.
v5.1.7minor
🕐 15 дн назад · релиз на GitHub ↗

Добавлено 10 новых методов чтения данных, улучшено обновление через dtkctl и исправлена работа с удалёнными постами.

  • Added: Добавлены 10 новых методов чтения: поиск, тренды, прямые эфиры, хештеги, музыка, серии авторов и связанные видео.
  • Added: Улучшен скрипт обновления dtkctl: автоматическое резервное копирование, миграция и откат при ошибках.
  • Fixed: Исправлена ошибка возврата ошибки риск-контроля вместо 404 при запросе удалённого поста Douyin.
  • Added: Оптимизация браузера: отключено авто воспроизведение видео, освобождавшее ядро процессора.
  • Added: Добавлена поддержка чтения значений из stdin для безопасной настройки секретов и новые пресеты установщика.
v5.1.6majorbreaking
🕐 16 дн назад · релиз на GitHub ↗

Возврат поддержки Bilibili с чистой Python-подпиской WBI, новые миграции БД и команда dtkctl upgrade.

  • Added: Добавлена полная поддержка Bilibili: API, консоль, MCP, загрузка MP4 и транскрипция без браузера.
  • Added: Введена команда dtkctl upgrade для упрощения процесса обновления до версии 5.1.6 и далее.
  • Added: Добавлены четыре новые миграции базы данных для поддержки новых функций и фильтрации.
  • Fixed: Исправлена безопасность: усилены меры защиты по результатам аудита версии 5.1.5.
  • Breaking: Ключи API не получают новый scope автоматически; для Bilibili требуется явное добавление bilibili:read.
v5.1.5patchbreaking
🕐 18 дн назад · релиз на GitHub ↗

Критическое исправление безопасности: устранён доступ viewer к кукам и задачам операторов.

  • Fixed: Устранена уязвимость, позволявшая роли viewer читать cookie jar и результаты запросов оператора.
  • Fixed: Заблокирована возможность создания гостевых идентичностей через браузер для роли viewer.
  • Breaking: Эндпоинт POST /api/v1/tools/identity теперь требует роль operator, а не только права identity:manage.
  • Fixed: Доступ к задачам теперь проверяет роль создателя, а не только область видимости задачи.
v5.1.3patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена работа коротких ссылок на платформенных эндпоинтах и обновлены зависимости, включая PyJWT для устранения ложных срабатываний сканеров.

  • Fixed: Короткие ссылки (v.douyin.com, vm.tiktok.com) теперь корректно обрабатываются на всех платформенных эндпоинтах, а не только на /api/v1/parse.
  • Fixed: Улучшена обработка ошибок: при отправке некорректных ссылок возвращается валидный код INVALID_PARAM с детальным описанием проблемы вместо сбоя с отсутствующим ID.
  • Added: Обновлены зависимости: на сервере SQLAlchemy 2.1, uvicorn 0.54, Alembic 1.20, wreq 0.12.3; в консоли React 19.3, react-i18next 17, TanStack Query 5.104.
  • Added: PyJWT обновлён до версии 2.15.0, что устраняет 13 уязвимостей, хотя сам проект dtk не использует эту библиотеку напрямую.
v5.1.0minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка папок коллекций и репостов на TikTok, исправлена валидация параметров и тестовые данные.

  • Added: Добавлены эндпоинты для работы с папками коллекций (collections) и репостами на TikTok.
  • Added: Поддержка парсинга ссылок на коллекции TikTok через /parse.
  • Fixed: Исправлена ошибка с пустыми страницами при превышении лимита count для TikTok (макс. 35).
  • Fixed: Исправлено отображение обложек папок, которые ранее возвращали null.
  • Fixed: Удалены реальные ID аккаунтов из тестовых файлов.
v5.0.3patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлен критический баг кэширования TikTok, улучшена логика 403 и добавлены новые события логов.

  • Fixed: Исправлено некорректное поведение кэша при поиске TikTok handle, из-за которого запросы падали с INVALID_PARAM.
  • Fixed: Устранено вводящее в заблуждение сообщение об ошибке 403, которое ошибочно указывало на проблемы с scopes.
  • Added: Добавлены новые события логов worker.author_handle.resolved и worker.author_handle.no_id для отладки.
  • Обновление Docker-образов: в .env необходимо указать DTK_IMAGE_TAG=5.0.3 без префикса v.
v5.0.2minorbreaking
🕐 1 мес назад · релиз на GitHub ↗

Исправлен парсинг sec_uid для TikTok, добавлена поддержка выбора платформы для авторов, унифицированы ошибки 403.

  • Added: Добавлено поле Author.sec_uid для корректной работы с авторами TikTok.
  • Fixed: Исправлен парсинг secUid: теперь ссылки на профили TikTok корректно ведут к публикациям автора.
  • Fixed: Разблокирован выбор платформы при скачивании авторов, ранее доступный только для Douyin.
  • Breaking: Изменена структура ошибок 403: ключи required и required_role заменены на required_scopes и required_roles.
v5.0.1minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз v5.0.1: исправлена утечка админ-панели для демо-пользователей, добавлен интерактивный установщик и обновлены зависимости.

  • Fixed: Исправлена критическая ошибка: в демо-режиме теперь скрывается административная панель и блокируются опасные API-эндпоинты (explain, identity), которые ранее были доступны всем.
  • Added: Добавлен интерактивный установщик (install.sh) на английском и китайском языках, который автоматически настраивает Docker, генерирует .env и предоставляет меню управления.
  • Added: Запущен публичный демо-портал https://douyin.wtf с лимитом 30 запросов в 10 секунд для тестирования консоли и API.
  • Fixed: Устранены ошибки верстки мобильного интерфейса: исправлено перекрытие экрана меню, отсутствие ссылок в футере и горизонтальная прокрутка на странице Tools.
  • Added: README по умолчанию переведен на английский язык, китайская версия перемещена в README.zh-CN.md.