Communitygithub.com

Youtube-note-forge

Habilidade de agente que transforma vídeos do YouTube e Bilibili em notas de aprendizado prontas para o Obsidian.

O que é Youtube-note-forge?

Esta skill transforma vídeos do YouTube e Bilibili em notas de estudo detalhadas e estruturadas, prontas para serem usadas no Obsidian. Ela opera como uma máquina de estados estritos, guiando o agente através de um pipeline fixo: extração de transcrição, planejamento de conteúdo baseado em seções do vídeo, captura de frames relevantes como evidências visuais e, finalmente, formatação da nota final no padrão do Obsidian. A skill é ideal para desenvolvedores e profissionais que desejam criar um banco de conhecimento pessoal a partir de conteúdo em vídeo, garantindo que cada nota seja rica em contexto, citações temporais e imagens-chave. Ela é parte do ecossistema do plugin Obsidian 'youtube-note-reader', mas também pode ser usada de forma independente com o OpenCode, dispensando a necessidade de extensões de navegador ou instalações complexas além do próprio Obsidian e do Python. A skill enfatiza a qualidade sobre a quantidade, impondo limites rígidos de frames e um processo de validação robusto para evitar notas superficiais ou duplicatas.

Funciona com~Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add yinbaozong/Youtube-note-forge

Perguntar na sua IA favorita

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

Documentação

YouTube Transcript v4.0.0

O runtime primário do produto completo é o plugin Obsidian youtube-note-reader. Ele gerencia a máquina de estados determinística, chama o modelo compatível com OpenAI configurado, executa estes scripts, persiste o estado da tarefa e escreve a nota finalizada no Vault ativo. A extensão do Chrome fornece apenas a URL atual do vídeo e o Cookie do navegador. O OpenCode continua sendo um ponto de entrada Skill opcional e não é necessário para a instalação completa do navegador + Obsidian.

Use esta Skill como uma máquina de estados estrita. Não improvise caminhos de extração alternativos.

Versão

Quando o usuário perguntar pela versão atual, execute:

python .obsidian/skills/youtube-transcript/scripts/video_note.py --version

Retorne a saída do comando. Nunca responda de memória. Ele reporta a versão instalada, o caminho de origem e os valores SHA-256 dos arquivos principais.

Fluxo de trabalho fixo

Para cada URL, complete os passos seguintes antes de passar para a próxima URL. Pare todo o lote no primeiro resultado de script não-zero.

  1. Extrair material de origem:
python .obsidian/skills/youtube-transcript/scripts/extract_transcript.py "<url>" --output-dir "YouTube video" --deadline 300
  1. Ler a nota gerada e seu SRT. Criar um plano JSON com article_outline e frames. article_outline contém 3-8 capítulos derivados da transcrição; todo item tem section_id, title, start, end, core_claims e learning_goal. Escolher quadros pelo valor de aprendizado, normalmente um quadro obrigatório para cada capítulo visualmente significativo, mais evidências opcionais para etapas ou resultados distintos. A maioria dos vídeos precisa de 6 a 14 quadros; 24 é apenas o limite máximo de segurança, nunca uma meta. Não crie múltiplos pontos no tempo quase idênticos apenas para aumentar a contagem. Todo quadro tem section_id, timestamp, purpose e required. Use o mesmo section_id para vincular cada captura de tela ao seu capítulo de resumo detalhado. Não renomeie ou reescreva a nota ainda. Não escreva scripts de sonda ou inspecione formatos de vídeo manualmente.
  2. Extrair os quadros planejados exatamente uma vez. Após um resultado bem-sucedido de materiais, este é o único próximo comando executável permitido:
python .obsidian/skills/youtube-transcript/scripts/extract_frames.py "<url>" --plan "<plan.json>" --note "<generated-note.md>" --output-dir "YouTube video" --deadline 120
  1. Confirmar que o resultado do quadro tem status: ok, pelo menos uma captura de tela e um caminho manifest real. O script escreve automaticamente frame_manifest no YAML da nota. Se algum destes estiver faltando, pare; não escreva a nota final e não substitua a capa.
  2. Renomear e reescrever a nota gerada no local de acordo com references/note-contract.md. Em ## 详细内容总结, use cada article_outline.title como um cabeçalho ### exato, explique suas afirmações principais e insira cada quadro obrigatório bem-sucedido em seu capítulo correspondente com uma explicação em chinês. Para capturas de tela locais do vault, use sempre embeds wiki do Obsidian como ![[YouTube video/assets/VIDEO_ID/frame.jpg]]; nunca use um alvo Markdown não escapado contendo espaços. Apenas imagens listadas no manifesto contam como capturas de tela.
  3. Validar:
python .obsidian/skills/youtube-transcript/scripts/validate_note.py "<finished-note.md>"
  1. Se a validação falhar, edite apenas essa nota uma vez e execute o validador mais uma vez. Nunca execute extração, escreva scripts temporários, inspecione código de implementação ou diagnostique comportamento da plataforma durante este reparo. Se ainda falhar, pare e reporte os erros retornados. Após uma validação bem-sucedida, o validador remove apenas rascunhos Markdown 待命名 - ... na mesma pasta cujo YAML url corresponda exatamente à nota final; rascunhos incompletos não correspondentes permanecem disponíveis para retomada.

Política de falha

PIPELINE_RESULT é a fonte da verdade. Em status: error, pare imediatamente e reporte a URL, estágio, código, mensagem, ação, URLs concluídas e URLs não iniciadas.

Nunca responda a uma falha executando outro downloader, um navegador, Puppeteer, extração de cookies do Chrome/Edge, uma pesquisa na web, uma gravação de áudio ou uma segunda tentativa. A única nova tentativa controlada está dentro dos scripts: uma última verificação de Cookie conhecida como boa e uma atualização da URL do fluxo de vídeo durante a extração de quadros direcionada.

O ASR está desabilitado por padrão. Use --allow-asr apenas se o usuário aceitar explicitamente o download de áudio e processamento mais lento.

Requisitos visuais

  • Capturas de tela são evidências, não decoração.
  • Use demonstrações, interfaces, diagramas, parâmetros, estados de comparação e resultados.
  • O script de quadro primeiro usa um fluxo remoto 720p ou inferior com cabeçalhos de requisição yt-dlp. Se a busca remota falhar, ele pode baixar apenas um segmento limitado de 8 segundos em torno de cada ponto no tempo planejado. Segmentos temporários são excluídos imediatamente e um vídeo completo nunca é baixado para capturas de tela.
  • A falha de um quadro obrigatório ou menos de 70% de cobertura do plano de quadros é uma falha grave.
  • Uma capa, miniatura, imagem copiada manualmente ou embed duplicado nunca conta como um quadro-chave.
  • Mantenha os quadros planejados mesmo quando seus layouts gerais parecerem semelhantes. Texto de terminal, código, slides e mudanças de estado da interface são úteis. Rejeite apenas quadros efetivamente em branco preto/branco; não use OCR, análise de imagem por IA ou filtragem de duplicatas perceptuais.
  • Nunca afirme conclusão a menos que frame_manifest exista e todo quadro obrigatório do manifesto apareça em ## 详细内容总结.
  • Não crie arquivos Canvas.

Requisitos da nota final

  • Nome do arquivo: 中文标题 - English Title.
  • YAML contém skill_version: 4.0.0, quality_profile_version: 1 e um frame_manifest válido escrito por extract_frames.py.
  • O corpo começa em ## 一句话摘要 sem um título H1 duplicado.
  • Remova status de origem, descrição do vídeo, índices de material visual, avisos de extração, instruções de tarefa e seções de auto-verificação do corpo final; o YAML já carrega metadados de origem.
  • Use chinês primeiro; explique terminologia inglesa necessária no primeiro uso.
  • Deixe a transcrição determinar o esboço do artigo e a profundidade. As imagens apoiam a explicação; nunca encurte ou omita conteúdo importante apenas porque um quadro correspondente não está disponível.
  • Combine a profundidade do artigo com a duração do vídeo. Cada capítulo planejado precisa de uma explicação real, evidência em vídeo ou exemplo, e uma implicação clara de aprendizado. Evite preenchimento genérico e parágrafos repetidos.
  • Vincule o SRT ao final. Não cole o texto bruto da transcrição.
  • Remova a lista de verificação de auto-verificação antes da conclusão final.

Habilidades Relacionadas