Communitygithub.com

podcast-intro

Construa a abertura de um episódio longo do Fringe Lines — um resumo de 35 a 60 segundos com as melhores falas do episódio, cortes com gráficos explicativos, legendas com palavras-chave, transições rápidas com efeitos sonoros e um cartão de título com a lista de tópicos.

O que é podcast-intro?

Este skill, chamado 'podcast-intro', é especializado em criar a abertura (cold open) de episódios longos do podcast Fringe Lines, seguindo o estilo dos intros de Greg Isenberg. Ele é projetado para desenvolvedores e agentes de IA que trabalham com a produção de vídeos para podcasts, automatizando a seleção de clipes, configuração de legendas, gráficos e efeitos de transição. O usuário deve usá-lo ao criar ou revisar a introdução de um episódio completo. O skill suporta a plataforma Remotion para renderização e usa um pipeline em Python para orquestrar todo o processo, desde a mineração do transcript até a renderização final. Ele funciona lendo o transcript do episódio, extraindo de 7 a 9 clipes impactantes com base em critérios como números concretos, afirmações ousadas ou reações engraçadas, e configurando um arquivo JSON com detalhes como legendas, gráficos e tópicos. O usuário pode planejar, renderizar gráficos e, em seguida, unir tudo, com etapas de QA para garantir qualidade de áudio e vídeo. É útil para produtores de conteúdo que desejam criar intros envolventes de forma consistente e eficiente.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qdevery/fringe-lines-video/tree/main/.agents/skills/podcast-intro

Perguntar na sua IA favorita

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

Documentação

Abertura de podcast longa (cold open)

O visual é modelado nos intros longos de Greg Isenberg. O que o torna envolvente:

  • Abra na fala mais forte, sem logotipo primeiro.
  • Corte a cada 3–6 s.
  • Faça aproximadamente a cada dois clipes um corte: o apresentador desliza para um cartão à esquerda enquanto um gráfico aparece à direita.
  • Mantenha as legendas curtas: 1–3 palavras, com palavras-chave em laranja.
  • Termine no título: um cartão que mostra o que está por vir.

O pipeline é pipeline/build_episode.py, controlado por work/<ep>/episode.json → intro. A renderização usa a composição Remotion IntroV2 (pipeline/remotion/src/IntroV2.tsx); os gráficos vêm de Graphics.tsx.

1. Extraia clipes do episódio (8–10 candidatos, mantenha 7–9)

  • Leia o transcript (work/<ep>/words-*.json, ou o .txt do Descript) e liste falas que se sustentam sozinhas em menos de 6 s.
  • Em ordem de preferência:
    1. Um número concreto: "pagam 27% dos funcionários para sair", "retenção de receita de 900%".
    2. Uma afirmação ousada ou previsão: "tokens vão se infiltrar em tudo".
    3. Uma confissão ou dor identificável: "Estou tão cansado de pagar assinaturas".
    4. Uma reação engraçada ou emocional: "Eu estaria maximizando tokens".
    5. Um fechamento citável: "não dá para colocar preço na superinteligência".
  • Distribua entre tópicos: aproximadamente um clipe por capítulo, ambos os hosts representados, pelo menos uma risada.
  • Ordene o resumo:
    • Clipe 1 é o gancho mais forte, geralmente um número ou afirmação.
    • Alterne apresentadores e energia.
    • Coloque a fala mais citável por último, antes do cartão de título.
  • Pule:
    • falas que precisam de contexto ("como eu disse", "esse gráfico");
    • falas com mais de ~6 s;
    • falas com sobreposição de vozes.
  • Palavrões: mantenha apenas se o usuário estiver de acordo com uma introdução explícita, e informe isso no relatório.

2. Configure episode.json → intro

"title": "FRINGE LINES",
"subtitle": "October 30, 2026",
"intro": {
  "style": "v2",
  "title": "Fringe Lines",
  "title_seconds": 4.5,
  "topics": ["The Morning Loop", "Microsoft headcount", "Build vs. buy", "Token limits", "Google vs. AI mode", "Anthropic's S-1", "AI spend"],
  "emphasis": ["27%", "leave", "900%", "retention", "sql", "agents", "tokens", "everything", "maxing"],
  "clips": [
    {"say": "microsoft just offered", "until": "employees to leave", "tag": "AI & jobs", "replace": {"27": "27%"},
     "graphic_on": "27%", "graphic": {"type": "stat", "kicker": "Microsoft buyout offer", "value": 27, "suffix": "%", "label": "of employees offered a payout to *leave*"}},
    {"say": "tokens are going to seep", "until": "like the internet", "tag": "Tokens everywhere"}
  ]
}
  • say / until: as primeiras e últimas palavras faladas do clipe, correspondidas sem sensibilidade a maiúsculas e pontuação. A correspondência é a primeira ocorrência no episódio, então torne say distintivo (3–5 palavras). Se o outro apresentador falar por cima, o correspondente tenta novamente usando apenas as palavras de um apresentador.
  • pre: segundos opcionais de introdução antes de say.
  • tag: o rótulo do tópico mostrado no canto superior esquerdo com seu número. Use 1–3 palavras.
  • replace: correções de legenda, por exemplo, números, "sequel"→"SQL", ou "a": "" para ocultar uma palavra.
  • graphic + graphic_on: o corte de gráfico aparece cerca de 150 ms antes da palavra falada graphic_on.
    • graphic_off opcional (uma palavra posterior) retorna ao quadro completo.
    • Sem graphic_off, o corte se mantém até o final do clipe.
  • Número de cortes: adicione cortes a 3–5 clipes. Escolha aqueles com um número, uma empresa ou produto nomeado, ou uma fala citável. Deixe clipes de reação e risada em quadro completo.
  • Tipos de gráfico (mesmo dos shorts editoriais):
    • stat: um número contável com kicker e rótulo;
    • people: uma grade de ícones;
    • lines: linhas de tendência esquemáticas;
    • quote: um cartão de tinta;
    • headline: um cartão estilo notícia com um destaque;
    • list: linhas numeradas.
    • Use *palavra* para itálico laranja.
  • Honestidade: os números na tela devem ser os que foram ditos. Gráficos são esquemáticos, nunca dados inventados.
  • topics: 5–7 nomes curtos de capítulos para o cartão de título, na ordem do episódio.
  • emphasis: 12–25 palavras-chave destacadas em laranja nas legendas: números, nomes, palavras de impacto.
  • title_seconds: 4–5 s. O cartão de título é "Fringe Lines" em serifa com a última palavra em itálico laranja, a data e uma lista "Neste episódio".

3. Verifique o plano antes de renderizar

~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage plan
  • Ele imprime a tag, duração e texto da legenda de cada clipe de introdução.
  • Corrija qualquer WARN intro clip not found: ajuste a redação de say/until para corresponder exatamente ao transcript.
  • Duração alvo: clipes de 35–50 s mais um título de 4.5 s. Remova ou encurte clipes com mais de 6 s.
  • Leia cada linha de legenda em busca de palavras mal interpretadas e adicione correções em replace.

4. Renderize

~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage graphics   # intro clips + IntroV2 + lower-thirds
~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage final      # join intro + body, chapters, loudness
  • Adicione --blur a ambos os comandos para a versão com fundo desfocado. Ela precisa das câmeras desfocadas em ~/.cache/fringe-lines-video/blur/ (veja pipeline/bg_blur.py) e escreve <ep>-fringe-lines-blur.mp4 a partir de um cache separado.
  • O corpo não precisa ser re-renderizado para alterações na introdução.
  • O arquivo de capítulos é regenerado, então todos os timestamps mudam com a duração da introdução.
  • Efeitos sonoros (whoosh, pop, whoosh longo até o título) são gerados na pasta de gráficos e mixados pelo Remotion.

5. QA

F=out/episode/<ep>-fringe-lines.mp4
ffmpeg -v error -y -i $F -t 50 -vf "fps=1,scale=320:-1,tile=8x7" -frames:v 1 /tmp/intro.png

Verifique:

  • Cada cartão de corte de gráfico está totalmente na tela, seus números correspondem ao que foi dito e não há * solto.
  • As legendas mostram palavras-chave em laranja e nenhuma legenda sobrepõe a borda inferior do cartão do apresentador.
  • O cartão de título lista todos os tópicos em ordem.
  • As durações de vídeo e áudio correspondem (ffprobe -show_entries stream=codec_type,duration).
  • O episódio está em cerca de −15.5 LUFS.
  • O arquivo de capítulos começa com "00:00 Cold open", depois a duração da introdução, depois "Catching up".

Relate ao usuário:

  • a lista de clipes (tag + fala);
  • quais clipes têm cortes de gráfico;
  • a duração da introdução;
  • qualquer linguagem explícita;
  • quaisquer números para verificar.

Individual skills in this repo

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

carousel

Make a Fringe Lines image carousel (Instagram/LinkedIn, 1080x1350 PNG slides + PDF) — photo slides with big condensed caps headlines and accent words, large-type text-only slides, chart/screenshot slides, explainer-graphic slides and a follow CTA. Use when asked for a carousel, slide post, or "swipe" post from an episode or a topic.

editorial-short

Make a Fringe Lines vertical short in the "editorial" style (paper background, speaker that morphs between full-bleed / card / round PiP, explainer graphics, word-by-word serif captions, hook + end card, SFX). Use when asked to make, restyle or fix a short from an episode.

engaging-monologue

Make a 16:9 FringeLines "engaging monologue" video from a solo talking-head take — jump cuts with punch-ins, the speaker shrinking into a portrait picture-in-picture while serif kinetic text, diagrams (pyramid stack, compare, roadmap, steps, big stat) and b-roll cards build on a paper canvas, plus callout cards, lower thirds, chips, a CTA pill and a green end card, all synced word by word to the speech. Use for YouTube explainers, solo commentary, newsletter-to-video and "one idea, told well" pieces.

infographic

Make a single-image editorial infographic (1080x1350) that explains one idea at a glance — two-tone headline, one-sentence dek, a hero visual with 2–4 numbered callouts and leader lines, an optional side note, a three-column "why it matters" row with icons, byline and sources. Use for "explain X in one graphic" posts about a company move, a framework, an architecture or a trend; the PNG can also be a carousel slide.

Habilidades Relacionadas