O douyin-downloader é uma solução de código aberto projetada para automatizar a coleta de vídeos, imagens e metadados da plataforma Douyin. Esta ferramenta resolve o problema da extração manual, permitindo downloads em massa sem marcas d'água, organização automática de arquivos e suporte para gravação de transmissões ao vivo.
Principais Funcionalidades
- Processamento em Lote: Download de perfis completos, coleções ou listas de favoritos.
- Gestão de Dados: Integração com SQLite para evitar duplicatas e manter um histórico de downloads.
- Extração de Metadados: Além do vídeo, o sistema salva capas (thumbnails), trilhas sonoras originais e descrições.
- Resiliência: Suporte para retentativas automáticas e fallback baseado em navegador quando a API principal falha.
Configuração do Ambiente
Para iniciar, é necessário ter o Python instalado e clonar o repositório oficial do projeto.
# Clonar o projeto
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader
cd douyin-downloader
# Instalar as bibliotecas necessárias
pip install -r requirements.txt
Autenticação via Cookies
O acesso aos dados do Douyin requer cookies válidos. O projeto oferece scripts utilitários para facilitar essa captura:
# Método automatizado para extração
python cookie_extractor.py
# Método alternativo (manual) se o anterior falhar
python get_cookies_manual.py
Configuração do Fluxo de Trabalho
A personalização do comportamento da ferramenta é feita através do arquivo config.yml. Abaixo, um exemplo de configuração otimizada com nomes de variáveis ajustados para melhor clareza:
# Exemplo de configuração personalizada (config.yml)
download_settings:
target_links:
- https://v.douyin.com/exemplo_de_perfil/
storage_path: "./midia_extraida/"
save_audio: true
save_thumbnail: true
concurrent_tasks: 4
database_options:
use_sqlite: true
history_db: "./cache_downloads.db"
Execução e Comandos
Existem duas interfaces principais de execução, dependendo da necessidade do usuário:
1. Modo de Comando Único (V1.0)
Ideal para downloads ponutais ou links específicos:
python DouYinCommand.py
2. Motor de Download Avançado (V2.0)
Recomendado para extração massiva de perfis de criadores de conteúdo:
python downloader.py -u "https://www.douyin.com/user/ID_DO_USUARIO"
Gravação de Transmissões ao Vivo
Uma funcionalidade avançada é a capacidade de capturar lives em tempo real com seleção de qualidade:
python DouYinCommand.py -l "https://live.douyin.com/ID_DA_LIVE"
As opções de qualidade geralmente incluem FULL_HD1, SD1 e SD2, permitindo equilibrar o consumo de banda e a fidelidade da imagem.
Arquitetura do Sistema
O projeto é modularizado para garantir escalabilidade e fácil manutenção:
- apiproxy/douyin/strategies/: Gerencia a lógica de alternância entre requisições de API e emulação de navegador.
- apiproxy/douyin/core/: Controla a fila de tarefas e o monitoramento de progresso em tempo real.
- apiproxy/douyin/database.py: Interface de abstração para o SQLite, garantindo a integridade dos dados e evitando redundância.
Otimização e Boas Práticas
Para usuários que lidam com grandes volumes de dados, recomenda-se o ajuste fino dos parâmetros de rede para evitar bloqueios de IP:
# Ajustes sugeridos no config.yml para evitar rate-limiting
network:
request_delay: 1.5 # Intervalo entre requisições em segundos
max_threads: 3 # Limitar concorrência para maior estabilidade
retry_count: 5 # Número de tentativas em caso de erro de conexão
Para automação contínua em servidores Linux, a integração com o crontab permite agendar verificações periódicas em perfis monitorados, garantindo que novos vídeos sejam baixados assim que publicados.