抖创工坊 (DouChuang Workshop)

Ferramenta local para captura de vídeos do Douyin, transcrição, reescrita com IA, geração de vídeo e **publicação automática no Douyin (modo imagem-texto) e no Jinri Toutiao (artigos)**.

O que é 抖创工坊 (DouChuang Workshop)?

O **抖创工坊** é um assistente especializado para criadores de conteúdo que desejam reutilizar vídeos da plataforma Douyin. Ele automatiza todo o fluxo: desde o download de vídeos (com prioridade sem marca d'água), extração de áudio, transcrição local via Whisper, reescrita com modelos de IA (DeepSeek/OpenAI), até a geração de vídeos verticais 9:16 com HyperFrames. Sua capacidade mais distinta são os dois pipelines de publicação: **Douyin (modo imagem-texto)** via CLI externa opcional e **Jinri Toutiao (artigos)** com executor Playwright próprio, ambos exigindo verificação humana antes do envio definitivo, eliminando o risco de duplicação. A ferramenta opera como um aplicativo desktop (Electron) e oferece gerenciamento de coleções, atualização incremental de vídeos de criadores, extração de conhecimento para gerar arquivos SKILL.md para Claude Code, e um centro de publicações com separação por canal. Toda operação é manual e passo a passo, com três tentativas automáticas por etapa e possibilidade de repetição manual em caso de falha, garantindo controle total ao usuário.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add LiChangZheng10086/doyin_ai_video

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Prévia

Do README da skill

License
Node
Electron
React

Documentação

抖创工坊

Captura de vídeos do Douyin → Transcrição → Reescrita com IA → Geração de vídeo, com publicação automática no Douyin (modo imagem-texto) e no Jinri Toutiao (artigos)

🚀 Dois pipelines de publicação automática (capacidade principal)

Tanto o modo imagem-texto do Douyin quanto os artigos do Jinri Toutiao podem ser submetidos automaticamente ao respectivo console pelo navegador local da máquina — cada um com pré-visualização no nível do pacote, verificação de contagem de caracteres por campo e opções de publicação. Antes do envio, uma confirmação é necessária:

PipelineMotorForma de LoginRestrição Chave
Douyin (imagem-texto)CLI externa social-auto-upload (opcional)Reutiliza sessão existente do DouyinApenas uma tarefa por vez; sem repetição automática
Artigo Jinri ToutiaoExecutor próprio (Playwright, reutiliza Chromium headless empacotado)Leitura de QR Code (QR na aplicação / janela do navegador)Texto gerado por IA + capa 16:9; capa obrigatória

Disciplina comum a ambos pipelines: cada passo é lido de volta para verificação (qualquer falha interrompe antes do clique em "Publicar" e indica onde parou); após o envio, apenas registra-se "enviado"; a confirmação de efetiva publicação cabe ao humano que verifica no console da plataforma e marca como "publicado"; nunca repetir automaticamente (antes de repetir, deve-se confirmar se o envio anterior foi realmente efetuado — repetir é o maior risco). Vídeos e outras plataformas (Xiaohongshu / WeChat Video / Bilibili) permanecem predominantemente com entrega manual.

O centro de publicações é organizado por canal (Douyin imagem-texto / Artigos Toutiao / Entrega manual de vídeos). Os três canais são independentes e não se misturam.

Visão Geral das Capacidades

Uma ferramenta desktop local voltada para revisão e recriação de conteúdo. O fluxo principal atual foca em: baixar vídeos, extrair áudio, transcrever com Whisper integrado, reescrever com IA, gerar storyboards de vídeo e, opcionalmente, renderizar MP4 9:16 localmente com HyperFrames. Suporta coleta em lote de perfis de usuários, chamada direta à API de assinatura, download de vídeo sem marca d'água, atualização incremental de coleções. Novas tarefas são executadas manualmente, passo a passo, com suporte a 3 tentativas automáticas por etapa e repetição manual em caso de falha.

License Node Electron React

⚠️ Aviso de isenção de responsabilidade: Este projeto destina-se exclusivamente a estudo e pesquisa técnica. O usuário deve cumprir os termos de serviço e leis aplicáveis das plataformas relevantes. Não use este projeto para fins comerciais ou para infringir direitos de terceiros. O autor não se responsabiliza por quaisquer consequências decorrentes do uso deste projeto.

🤝 Em busca de colaboradores

Atualmente mantido por uma única pessoa. Contribuições são bem-vindas!

Áreas que precisam de ajuda especial agora:

  • Manutenção da estabilidade das assinaturas do Douyin (a_bogus / X-Bogus)
  • Otimização do tamanho do modelo Whisper e da precisão em chinês
  • Estilos de vídeo HyperFrames / dublagem TTS
  • Melhorias de UI/UX e testes de empacotamento no Windows
  • Documentação, casos de teste, vídeos de exemplo

→ Veja o guia de contribuição | Abra uma issue | Fórum de discussão

Funcionalidades Principais

Fluxo Manual Passo a Passo

Entrada: Link de compartilhamento do Douyin / Texto de compartilhamento / Link de perfil de usuário
  ↓
Criar tarefa / coleção: Analisa e salva a entrada, não executa automaticamente o fluxo completo
  ↓
Usuário confirma e executa gradualmente:
  1️⃣ Baixar vídeo (prioridade sem marca d'água → API de assinatura → yt-dlp)
  2️⃣ Extrair áudio (ffmpeg → 16kHz mono WAV)
  3️⃣ ASR para texto (whisper.cpp integrado)
  4️⃣ Reescrita com IA
  5️⃣ Gerar prompts de vídeo / storyboard
  6️⃣ Gerar vídeo vertical local (opcional, HyperFrames)
  7️⃣ Entrega no centro de publicações (opcional; Douyin imagem-texto / Artigos Toutiao podem ser enviados automaticamente. Após o envio, verificação humana)
  ↓
Saída: 📝 Transcrição estruturada + ✍️ Texto reescrito + 🎬 MP4 + 📦 Pacote de entrega para publicação

Funcionalidades

  • ✅ Download de vídeo — Prioridade sem marca d'água, suporte a degradação com API de assinatura e yt-dlp
  • ✅ Coleta de perfil de usuário — Insira o link do perfil e baixe a lista completa de vídeos
  • ✅ Gerenciamento de coleções — Crie coleções por criador, crie subtarefas em lote, execute etapas em lote
  • ✅ Atualização incremental de coleções — Verifique novos vídeos do criador com um clique, adicione apenas os novos à coleção existente
  • ✅ Chamada direta à API de assinatura — Assinaturas a_bogus + X-Bogus, chamadas diretas às APIs internas do Douyin sem navegador
  • ✅ Gerenciamento de Cookies — Suporte a login via QR Code e colagem manual de cookies
  • ✅ Extração de áudio — Extrai áudio padronizado com ffmpeg e salva manifest de áudio
  • ✅ Transcrição de fala — Whisper.cpp + ggml-small integrado, transcrição em chinês localmente
  • ✅ ASR offline — Sem necessidade de chave de API ASR, Python, FunASR ou faster-whisper
  • ✅ Reescrita com IA — Reescrita com base na transcrição, gerando título, resumo, pontos-chave, texto reescrito, roteiro para narração e dicas de qualidade
  • ✅ Geração de storyboard de vídeo — Gera prompts de vídeo e script de storyboard com base no texto reescrito
  • ✅ Destilação de conhecimento em Skill — Destila texto de transcrições de coleções em um arquivo SKILL.md para Claude Code
  • ✅ Gerenciamento de Skills — Página dedicada para visualizar, renomear e excluir Skills gerados
  • ✅ Geração local de vídeo — Usa HyperFrames CLI para renderizar o texto reescrito e o ritmo das legendas em MP4 9:16
  • ✅ Visualização do vídeo original — Alternar entre "vídeo original" e "vídeo final" na página de detalhes, assistindo diretamente o vídeo do Douyin baixado durante a transcrição
  • ✅ Biblioteca de mídia — Página dedicada para upload e gerenciamento manual de imagens e áudio (imagens podem ser usadas na publicação imagem-texto)
  • ✅ Centro de publicações — Organiza o material final em pacotes de entrega independentes, gera textos em chinês simplificado para quatro plataformas; separação por canal com rastreamento de status e entrega manual
  • ✅ Publicação de artigos no Jinri Toutiao — Texto gerado por IA + capa 16:9 + login via QR Code, submissão automática à conta Toutiao (pré-visualização obrigatória antes do envio; verificação humana e marcação de "publicado" após). Testado com sucesso em 20/09/2026
  • ✅ Barra lateral recolhível — Navegação lateral esquerda no desktop pode ser expandida/recolhida, mostrando rótulos de texto quando expandida e apenas ícones quando recolhida
  • ✅ Lixeira de tarefas — Tarefas excluídas são mantidas por 30 dias, podendo ser restauradas ou excluídas permanentemente
  • ✅ Múltiplos modelos de IA — Suporte a DeepSeek, OpenAI e serviços de proxy compatíveis com OpenAI
  • ✅ Aplicativo desktop — Baseado em Electron, suporte a macOS e Windows
  • ✅ Feedback em tempo real — Progresso da tarefa atualizado em tempo real, exibindo status detalhado de cada etapa e erros

Operador local e permissões

  • Interface de login, troca de conta e gerenciamento de usuários foi removida: Ao iniciar, o aplicativo obtém automaticamente uma sessão de "operador local", sem necessidade de login ou seleção de conta.
  • A sessão automática reutiliza, com prioridade, um administrador existente e ativo (selecionado deterministicamente por createdAt / id em ordem crescente). Apenas na ausência total de qualquer administrador é criado um "usuário local" sem PIN. Nenhum usuário histórico é excluído ou renomeado.
  • O contrato da interface do PIN de administrador não foi flexibilizado: Chamar POST /api/local-sessions para abrir uma sessão de administrador ainda requer o PIN correto. O caminho sem PIN existe apenas em POST /api/local-sessions/auto.
  • A função ainda determina permissões de publicação e auditoria: Desfazer status de publicado, excluir/restaurar pacotes de publicação são operações de administrador. Cada registro de auditoria ainda inclui um snapshot do actor. Em uso local, o operador atual é administrador, portanto essas operações estão disponíveis.
  • As funções locais são para controle de permissões de fluxo de trabalho e auditoria do operador, não são contas em nuvem nem uma barreira de segurança forte; qualquer pessoa com acesso ao armazenamento local ou conta do sistema operacional ainda pode ler ou modificar dados locais.

Centro de Publicações

  • Por padrão, o centro de publicações apenas prepara pacotes de entrega locais e auxilia na operação manual. Vídeos não são enviados automaticamente; o modo imagem-texto do Douyin pode opcionalmente chamar a CLI externa social-auto-upload (sau) para envio automático, mas com pré-visualização obrigatória antes do envio e, após o envio, o usuário ainda deve clicar em "marcar como publicado" para confirmar.
  • Artigos do Jinri Toutiao seguem outro pipeline: executor Playwright próprio (reutiliza o chrome-headless-shell empacotado, zero downloads extras). O fluxo é "conteúdo reescrito → texto gerado por IA → pacote de artigo (article.html + capa 16:9) → pré-visualização → envio". O login só pode ser via QR Code (a conta Toutiao não possui credenciais copiáveis): vá em "Configurações → Jinri Toutiao" e clique em "Login por QR Code" (QR exibido no aplicativo) ou "Abrir navegador para login QR" (abre uma janela de navegador real); a sessão é salva em um perfil persistente no storage. Após escanear uma vez, publicações e verificações não exigirão novo escaneamento. Variáveis de ambiente relevantes: TOUTIAO_BROWSER_BINARY (caminho do navegador, resolução padrão: "configuração explícita → recurso empacotado → cache Playwright → Chrome do sistema"), TOUTIAO_PROFILE_DIR (diretório da sessão, deve estar dentro do storage). Cada etapa possui verificação de leitura de retorno: qualquer falha interrompe antes do clique em "Publicar"; a opção "Publicar simultaneamente no Toutiao Microblog" está desligada por padrão e, se não puder ser desligada, não publica.
  • Mesma invariante do pipeline Douyin: a máquina apenas envia o conteúdo, registra como "enviado"; task.status permanece inalterado durante todo o processo e nunca repete automaticamente (antes de repetir, deve-se confirmar se o envio anterior foi realmente efetuado — repetir é o maior risco).
  • O centro de publicações não salva credenciais de plataforma. Ao usar o pipeline automático de imagem-texto, a sessão existente do Douyin (~/.douyin-ai-video/douyin-cookie.txt) é convertida em um storage_state do Playwright e escrita em <SAU_BASE_DIR>/cookies/douyin_<account>.json (permissão 600) para uso pelo motor externo.
  • A partir do material final gerado em uma página de detalhes de tarefa, entre em "Adicionar ao centro de publicações" seguindo o assistente "Material final → Plataforma → Texto → Agendamento → Confirmação" para criar o pacote de entrega.
  • Suporta Douyin, Xiaohongshu, WeChat Video Channel e Bilibili; um pacote de entrega pode incluir tarefas para múltiplas plataformas, e versões independentes podem ser criadas para o mesmo material final.
  • O texto é gerado preferencialmente pela configuração de IA atual para cada plataforma; quando a IA não está disponível, usa o conteúdo reescrito como fallback, marcado explicitamente como "texto de fallback". Edições do usuário são registradas como "editado pelo usuário".
  • Separação por canal: Abas de primeiro nível "Douyin imagem-texto / Artigos Toutiao / Entrega manual de vídeos" — os métodos de envio são completamente diferentes (os dois primeiros são automáticos, o terceiro é puramente manual), cada um com contagem de pacotes e descrição. Canal e status são registrados na URL (?channel=). Douyin imagem-texto e Artigos Toutiao têm apenas uma plataforma, portanto esses canais não exibem um menu suspenso de plataformas.
  • O centro de publicações oferece operações auxiliares manuais como copiar título/corpo/tags, abrir plataforma, localizar vídeo no Finder, marcar como publicado, registrar falha e modificar agendamento.
  • Publicadores podem manter conteúdo não publicado; administradores são responsáveis adicionalmente por desfazer status de publicado e gerenciar a lixeira de publicações.
  • Os pacotes de publicação são armazenados no diretório raiz do storage em output/publishing/{sourceJobId}/v{version}-{packageId}/. O diretório raiz do storage depende do modo de execução: no desktop é ~/Library/Application Support/douyin-ai-video/storage (macOS); no backend independente é storage/ dentro do repositório.
  • Os pacotes de publicação são autocontidos: o material final, a capa e as imagens do modo imagem-texto são copiados para o diretório do pacote. Portanto, excluir mídia ou modificar arquivos de origem posteriormente não afeta os pacotes já criados.
  • O agendamento de publicação é verificado apenas durante a execução do aplicativo; tarefas com vencimento durante a saída do aplicativo são processadas na próxima inicialização, mas o console da plataforma não é aberto automaticamente.
  • A lixeira de publicações é independente da lixeira de tarefas, com retenção de 30 dias. A limpeza periódica exclui apenas ativos de publicação locais, sem afetar obras originais, outras versões ou vídeos na plataforma.
  • Se cache/publishing-index.json estiver corrompido, as operações de escrita de publicação entram em modo de proteção somente leitura. Faça backup do arquivo original primeiro e restaure a partir de um backup válido ou repare manualmente; o fluxo de criação ainda pode continuar sendo usado.

Pré-visualização da Interface

Interface Principal - Lista de Tarefas e Coleções

  • Criar nova tarefa (URL / link de perfil / texto de compartilhamento)
  • Visualização de coleções: agrega e exibe o progresso de todas as subtarefas por criador
  • Visualizar status de todas as tarefas
  • Visualizar etapas executáveis atuais ou etapas com falha
  • Mover tarefa para a lixeira do aplicativo

Página de Detalhes da Tarefa

  • Visão Geral — Informações básicas e status de processamento da tarefa
  • Etapas do pipeline principal — Download, extração de áudio, transcrição ASR, reescrita IA, geração de storyboard, geração de vídeo
  • Transcrição do vídeo — Texto da transcrição real extraído do áudio do vídeo
  • Reescrita IA — Título reescrito, resumo, pontos principais, roteiro, texto para narração e dicas de qualidade
  • Conteúdo do storyboard — Storyboard curto e prompts de vídeo gerados a partir do texto reescrito
  • Vídeo final — MP4 renderizado localmente, caminho do projeto e lista de cenas

Página de Detalhes da Coleção

  • Informações do usuário no topo (apelido, avatar, total de obras) + botão "Verificar atualizações"
  • Lista de vídeos (capa, descrição, status, caixa de seleção), ordenada por data de publicação decrescente
  • Operações em lote: criar tarefas selecionadas, transcrição em lote, reescrita em lote, storyboard em lote, geração de vídeo em lote
  • Barra de progresso total das subtarefas
  • Ver todo o texto da transcrição + botão "Gerar Skill"

Página de Gerenciamento de Skills

  • Layout de grade em cartões, exibindo todos os Skills gerados
  • Cada cartão mostra: nome do Skill, coleção de origem, status de sincronização automática, quantidade de transcrições, data de geração
  • Ações: visualizar conteúdo (3 abas: renderização SKILL.md, fonte original, metadados JSON), reutilizar na página da coleção
  • Suporte a renomeação inline, sincronização automática de frontmatter do SKILL.md e diretório de arquivos

Centro de Publicações

  • Visualizar pendentes, a publicar, agendados, publicados, falhos, ativos anômalos e lixeira de publicações
  • Filtrar por título/texto, plataforma, tarefa de origem, número da versão e criador
  • Expandir pacote de publicação para ver textos de cada plataforma, agendamento, status de saúde dos ativos e registros de auditoria
  • Executar ações: copiar texto, pré-visualizar, abrir plataforma, localizar vídeo, marcar como publicado, registrar falha, cancelar, restaurar e criar nova versão
  • Pacotes imagem-texto oferecem adicionalmente "Publicar imagem-texto no Douyin" (pré-visualizar antes de enviar) e "Enviar código de verificação"
  • Pacotes de artigo (Jinri Toutiao) oferecem adicionalmente "Enviar para conta Toutiao" (pré-visualizar antes de enviar) e "Baixar HTML do artigo" (caminho de fallback: exporta article.html, utilizável a qualquer momento e pode ser colado diretamente no editor Toutiao); tarefas de artigo não oferecem "Editar texto" — o corpo é o resultado da renderização do article.html em nível de pacote; para alterar, recrie o pacote de artigo

Página de Configurações

  • Gerenciamento de Chaves de IA — Gerencie várias chaves de API de serviços de IA, suporte a DeepSeek, OpenAI e proxies compatíveis
  • Login no Douyin — Login via QR Code ou colagem manual de cookies, visualizar status de login
  • Jinri Toutiao — Login via QR Code na conta Toutiao (QR no aplicativo / abrir janela do navegador para escanear) e verificação de login sem efeitos colaterais
  • Status do Reconhecimento de Fala — Exibe capacidade de transcrição local do Whisper integrado

Arquitetura Técnica

┌─────────────────────────────────────────┐
│         Processo principal Electron      │
│  - Gerenciamento de janelas              │
│  - Comunicação IPC                       │
│  - Inicialização do servidor backend     │
└─────────────────────────────────────────┘
           │                    │
    ┌──────┘                    └──────┐
    ▼                                  ▼
┌─────────────────┐          ┌──────────────────────┐
│  Frontend React  │  HTTP    │  Backend Express     │
│                 │ ◄────►   │                      │
│  - React 19     │          │  - Gerenciamento de  │
│  - Vite         │          │    tarefas            │
│  - Zustand      │          │  - Raspagem de       │
│  - Tailwind CSS │          │    perfis de usuário  │
│  - React Router │          │  - Gerenciamento de   │
│                 │          │    coleções + atualiz.│
│                 │          │    incremental        │
│                 │          │  - Algoritmo de       │
│                 │          │    assinatura (a_bogus)│
│                 │          │  - Gerenciamento de   │
│                 │          │    cookies            │
│                 │          │  - Download de vídeos │
│                 │          │  - Extração de áudio  │
│                 │          │  - Transcrição de fala│
│                 │          │  - Reescrita com IA   │
│                 │          │  - Geração de         │
│                 │          │    storyboard         │
│                 │          │  - Destilação de      │
│                 │          │    conhecimento Skill │
│                 │          │  - Publicação de      │
│                 │          │    artigos Toutiao    │
└─────────────────┘          └──────────────────────┘
                                      │
                      ┌───────────────┴───────────────┐
                      ▼                               ▼
             ┌─────────────────┐             ┌────────────┐
             │ IA / ASR local  │             │ Armazenamento│
             │ - DeepSeek      │             │  de arquivos │
             │ - OpenAI        │             │            │
             │ - Proxy         │             │ ~/.douyin  │
             │ - whisper.cpp   │             │   -ai-video/│
             │ - ggml-small    │             │   storage   │
             └─────────────────┘             │ ~/.claude  │
                                              │ /skills/   │
                                              └────────────┘

Pilha Tecnológica

Backend

  • Runtime: Node.js 18+
  • Framework: Express 4
  • Linguagem: TypeScript 5.x
  • Processamento de vídeo: yt-dlp, ffmpeg
  • Automação de navegador: Playwright (raspagem de perfis de usuário e login QR)
  • Serviços de IA: OpenAI SDK (compatível com DeepSeek / OpenAI)
  • ASR: whisper.cpp + ggml-small integrado (acompanha o pacote de instalação)
  • Renderização de vídeo: HyperFrames CLI (opcional; etapa de geração de vídeo requer Node.js 22+ e FFmpeg)
  • Algoritmo de assinatura: SM3/MD5 + RC4 + Base64 personalizado (implementação pura em TypeScript)

Frontend

  • Framework: React 19
  • Build: Vite 6
  • Roteamento: React Router DOM 7
  • Gerenciamento de estado: Zustand 5
  • Estilização: Tailwind CSS (sistema de design personalizado)

Desktop

  • Framework: Electron 34
  • Empacotamento: electron-builder

Instalação e Execução

Requisitos de Ambiente

  • Node.js >= 18.0.0
  • npm >= 9.0.0
  • macOS ou Windows
  • Modo de desenvolvimento requer yt-dlp, ffmpeg e navegador Playwright disponíveis localmente
  • Etapa de geração de vídeo requer Node.js >= 22 e HyperFrames CLI
  • O comando de empacotamento prepara automaticamente todos os recursos de execução; a máquina de build precisa de acesso à internet, tar, unzip e ferramentas de linha de comando básicas
  • O pacote de instalação inclui yt-dlp, ffmpeg, ffprobe, whisper.cpp, ggml-small, HyperFrames CLI e Chrome headless shell

Instalar Dependências

# Clonar repositório
git clone https://github.com/LiChangZheng10086/doyin_ai_video.git
cd doyin_ai_video

# Instalar dependências
npm install

# Instalar navegador Playwright (necessário para raspagem de perfis e login QR)
npx playwright install chromium

Modo de Desenvolvimento

# Iniciar Vite + Electron de uma vez
npm run dev

# Ou iniciar separadamente
npm run dev:renderer
npm run dev:electron

Build de Produção

# Gerar pacote DMG/ZIP para macOS Apple Silicon
npm run package:mac

# Gerar instalador NSIS para Windows 11 x64
npm run package:win

# Gerar macOS + Windows sequencialmente
npm run package:all

O script de empacotamento prepara vendor/package-assets para a plataforma alvo e copia os recursos necessários para o pacote de instalação:

  • bin/: yt-dlp, ffmpeg, ffprobe
  • whisper/: whisper-cli, modelo ggml-small e DLLs do Windows
  • hyperframes/: HyperFrames CLI e suas dependências Node
  • browser/: Chrome headless shell

Atualmente, package:mac gera pacote macOS arm64; package:win gera pacote Win11 x64. O aplicativo instalado não exige que o usuário instale Python, FunASR, Whisper, ffmpeg, yt-dlp, Node.js ou HyperFrames. Download do Douyin e reescrita com IA ainda requerem internet; reescrita AI / geração de Skill ainda requerem uma chave de API de IA válida.

Instruções de Configuração

1. Configuração de API de IA

Adicione chaves de API de IA na página de configurações do aplicativo:

DeepSeek (recomendado)

OpenAI

Proxy / Personalizado

  • Suporta qualquer API compatível com OpenAI; basta preencher baseURL e nome do modelo

2. Configuração de Cookie do Douyin

Para que a chamada direta à API de assinatura e a coleta em lote funcionem, é necessário configurar a sessão do Douyin na página de configurações. Duas formas:

Login via QR Code

  • Vá em Configurações → Douyin Login → Clique em "Abrir navegador para login QR"
  • Escaneie o código QR na janela pop-up para concluir o login
  • O cookie é salvo automaticamente em ~/.douyin-ai-video/douyin-cookie.txt

Colagem manual (recomendado)

  • Abra e faça login em https://www.douyin.com/ no Chrome
  • Pressione F12 para abrir DevTools → Application → Cookies → douyin.com
  • Copie todos os cookies no formato key1=value1; key2=value2; ...
  • Cole no campo de entrada na página de configurações e clique em "Salvar Cookie"

Cookies de autenticação principais incluem: sessionid, sid_guard, passport_csrf_token, odin_tt, ttwid

3. Configuração de Transcrição de Fala

A transcrição de fala já está integrada ao aplicativo desktop:

  • Motor: whisper.cpp
  • Modelo: ggml-small multilíngue
  • Áudio: extraído com ffmpeg em pcm_s16le, 16kHz, mono WAV
  • Execução: transcrição local, sem necessidade de chave de API ASR, Python, FunASR ou faster-whisper

Para modo de desenvolvimento ou preparação separada do Whisper, execute:

npm run prepare:whisper

Este comando gera:

vendor/whisper/
├── whisper-cli
└── models/
    └── ggml-small.bin

Configurações antigas como asrProvider, asrApiKey, asrBaseURL, asrModel continuam sendo lidas para compatibilidade, mas o backend de transcrição não as utiliza mais.

4. Dependências Externas

O modo de desenvolvimento usa as seguintes ferramentas do sistema; o pacote de instalação já inclui recursos equivalentes:

  • yt-dlp — Download de vídeos

    brew install yt-dlp  # macOS
    
  • ffmpeg — Processamento de áudio/vídeo

    brew install ffmpeg  # macOS
    
  • HyperFrames — Renderização de animação HTML local para MP4 (necessário para etapa de geração de vídeo em desenvolvimento)

    npx --yes [email protected] doctor
    

HyperFrames é um pipeline de renderização de HTML/CSS/GSAP para vídeo local, não é Sora, Remotion ou API de geração de vídeo em nuvem do HeyGen. Em ambiente de desenvolvimento, a CLI é chamada por padrão via npx --yes [email protected]; após empacotamento, o HyperFrames CLI e o Chrome headless shell integrados são usados preferencialmente. A versão atual (v1) gera vídeos explicativos imagem-texto sem pessoas reais ou avatares digitais; voiceoverScript é usado como legenda e ritmo de cena, sem geração automática de dublagem TTS por enquanto.

Navegador para publicação no Toutiao: Reutiliza o Chrome headless shell empacotado, zero dependências extras. Se não for resolvido, escolha uma das duas opções:

npm run prepare:package:mac      # Baixa o chrome-headless-shell dos recursos empacotados
npx playwright install chromium  # Ou instala um navegador Playwright completo

Individual skills in this repo

This repo contains 13 individual skills — each has its own dedicated page.

LiChangZheng10086/doyin_ai_video

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

LiChangZheng10086/doyin_ai_video

Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it "looks like a one-liner" — whenever: the prompt names Claude/Anthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing/model choice/limits/caching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent/MCP/tool-definition/multi-agent/RAG/LLM-judge/computer-use; generate/summarize/extract/classify/rewrite/converse over NL; debugging refusals/cutoffs/streaming/tool-calls/tokens). SKIP only when another provider is being worked on (overrides all triggers): OpenAI/GPT/Gemini/Llama/Mistral/Cohere/Ollama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIR...

LiChangZheng10086/doyin_ai_video

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

LiChangZheng10086/doyin_ai_video

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

LiChangZheng10086/doyin_ai_video

Grill me about specs for the workflows I want to build, within this workspace.

LiChangZheng10086/doyin_ai_video

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

LiChangZheng10086/doyin_ai_video

智能 PPT 生成器。支持 7 种视觉风格(乐高/波普/黏土/黑白/商务/学术/科技),具备根据内容自动推荐风格、生成大纲、绘制配图并组装成片的全自动能力。

LiChangZheng10086/doyin_ai_video

Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.

LiChangZheng10086/doyin_ai_video

Diagnose and fix React codebase health issues. Use when reviewing React code, fixing performance problems, auditing security, or improving code quality.

LiChangZheng10086/doyin_ai_video

Sentry error monitoring and performance tracing patterns for Next.js applications.

LiChangZheng10086/doyin_ai_video

Simplify and refine recently modified code for clarity and consistency. Use after writing code to improve readability without changing functionality.

LiChangZheng10086/doyin_ai_video

✅ "你知道今天所有大模型能读懂你的话,全靠一个叫Transformer的架构吗?"

LiChangZheng10086/doyin_ai_video

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.

Habilidades Relacionadas