抖创工坊
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:
| Pipeline | Motor | Forma de Login | Restrição Chave |
|---|---|---|---|
| Douyin (imagem-texto) | CLI externa social-auto-upload (opcional) | Reutiliza sessão existente do Douyin | Apenas uma tarefa por vez; sem repetição automática |
| Artigo Jinri Toutiao | Executor 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.
⚠️ 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/idem 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-sessionspara abrir uma sessão de administrador ainda requer o PIN correto. O caminho sem PIN existe apenas emPOST /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-shellempacotado, 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.statuspermanece 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 umstorage_statedo 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.jsonestiver 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 doarticle.htmlem 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,unzipe 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, ffprobewhisper/: whisper-cli, modelo ggml-small e DLLs do Windowshyperframes/: HyperFrames CLI e suas dependências Nodebrowser/: 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)
- Chave de API: https://platform.deepseek.com/api_keys
- Modelo: deepseek-chat
- Boa relação custo-benefício, adequado para conteúdo em chinês
OpenAI
- Chave de API: https://platform.openai.com/api-keys
- Modelos: gpt-4o, gpt-4o-mini
- Qualidade consistente
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-smallmultilí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