| name | tbpn |
| description | Weekly newspaper-style summary of TBPN (Technology Business Programming Network) episodes. Use when the user asks for a TBPN summary, weekly tech news roundup, or says "tbpn summary", "tbpn newspaper", "what happened on tbpn this week", "pull the last N tbpn episodes". Also suitable for cron/scheduled end-of-week summaries. |
| license | MIT |
| compatibility | Requires yt-dlp and a PO Token server (bgutil-ytdlp-pot-provider) for YouTube transcript downloads. Works with any agent that can run shell commands and fetch URLs. |
| metadata | {"author":"junaidrahim","version":"1.0"} |
TBPN Weekly Summary
Generate a newspaper-style summary of TBPN episodes and save it as Markdown.
Configuration
Before first use, set these paths for your environment. Agents should check for a tbpn.config.json in this skill's directory. If it doesn't exist, use sensible defaults or ask the user.
{
"ytDlp": "yt-dlp",
"potServerDir": "~/bgutil-ytdlp-pot-provider/server",
"outputDir": "./output",
"tempDir": "/tmp"
}
- ytDlp — path to the
yt-dlp binary (default: yt-dlp on PATH)
- potServerDir — path to the bgutil PO Token server directory
- outputDir — where to save generated summaries (e.g. an Obsidian vault folder like
~/vault/TBPN/)
- tempDir — where to store temporary transcript files
Feeds
- YouTube:
https://www.youtube.com/feeds/videos.xml?channel_id=UC-DRzaGnL_vtBUpCFH5M0tg
- Newsletter (Substack):
https://tbpn.substack.com/feed
Workflow
1. Fetch episodes
- Pull the YouTube RSS feed
- Filter for full episodes (skip Shorts — URLs containing
/shorts/)
- By default, get episodes from the current week (Monday–Friday)
- The user may also request a specific number of recent episodes
2. Get transcripts
3. Generate the summary
Read all transcripts and produce a structured summary:
- Headline — the single biggest story
- Top Stories — 3-5 major topics, each with a 2-3 sentence summary
- Interviews & Guests — notable guests and key takeaways
- Hot Takes — spicy opinions from John or Jordi worth noting
- Quick Hits — bullet list of smaller stories mentioned
- Links — relevant links mentioned on the show
Tone: informative, slightly casual, like a tech-savvy friend summarising the week. Aim for 500-800 words total.
4. Save the summary
Save to <outputDir>/YYYY-WNN.md (e.g. 2026-W14.md). Create the output directory if it doesn't exist.
Use the template in references/TEMPLATE.md.
5. PDF newspaper (optional)
If the user asks for a PDF, newspaper format, or "Wall Street Journal style":
- Read the HTML template at references/NEWSPAPER-TEMPLATE.html
- Replace all
{{PLACEHOLDER}} values with content from the generated summary:
{{WEEK_NUMBER}}, {{YEAR}}, {{DATE_RANGE}}, {{EPISODE_COUNT}}
{{HEADLINE}}, {{HEADLINE_DECK}} — main story headline and sub-headline
{{LEAD_DROPCAP}}, {{LEAD_TEXT}} — first letter and body of the lead story
{{STORIES_LEFT}} — HTML story blocks (use .story class with <h3>, .deck, <p> tags)
{{STORIES_RIGHT}} — interviews (.interview-box), hot takes (.hot-takes), pull quotes (.pullquote)
{{QUICK_HITS_LEFT}}, {{QUICK_HITS_RIGHT}} — <li> items with <strong> labels
- Write verbose, long-form content for the PDF — much longer than the Markdown summary:
- A single episode's newspaper should span 3-4 printed pages (so a full week of 5 episodes produces a ~20 page paper)
- Quote generously from the transcripts — include full paragraphs of dialogue, not just paraphrases. Pull exact lines from hosts, guests, and interviewees. Let the reader hear the voices.
- For interviews, reproduce substantial back-and-forth exchanges, not just takeaways. Include the setup questions and the full answers.
- Expand every story with color, context, and multiple direct quotes. If John or Jordi had a reaction, include it verbatim.
- Hot takes should be full quotes with surrounding context, not one-liners.
- The lead story should be several paragraphs long with multiple quoted passages.
- Think of it as a feature article, not a summary — someone who reads the PDF should feel like they watched the episode.
- Save the filled HTML to
<tempDir>/tbpn-newspaper.html
- Render to PDF using a browser. Ensure 1 inch (25mm) margins on all sides — top, bottom, left, and right — for readability:
- With browser tool: open the HTML, use the PDF action with margins, save to
<outputDir>/YYYY-WNN-newspaper.pdf
- With headless Chrome:
chrome --headless --print-to-pdf=output.pdf --print-to-pdf-no-header newspaper.html (do NOT use --no-margins; the default margins are correct)
- With Playwright: use
page.pdf({ margin: { top: '25mm', bottom: '25mm', left: '25mm', right: '25mm' } })
- With wkhtmltopdf: use
--margin-top 25 --margin-bottom 25 --margin-left 25 --margin-right 25
- Send or share the PDF with the user
The template uses Google Fonts (Playfair Display, Source Serif 4, Inter) and is styled after the Wall Street Journal — cream background, double-rule masthead, drop caps, two-column layout, dark hot takes box, interview callout boxes.
6. Notify the user
After saving, let the user know: "TBPN weekly summary for Week NN is ready."
Setup
If yt-dlp or the PO Token server are not installed, refer to references/SETUP.md for installation instructions.
Notes
- TBPN streams weekdays 11 AM–2 PM PT (John Coogan & Jordi Hays)
- Show was acquired by OpenAI in April 2026
- If no episodes aired in a given week, skip and note it
- The Substack feed can supplement YouTube when transcripts are unavailable