agentleFS
swyxioswyxio/skills/podcast-publishing-assistant/SKILL.md

podcast-publishing-assistant

Skill176 starsChanged 7 months agoMITView on GitHub

Transcribe long-form audio, YouTube videos, podcasts, interviews, or panels; summarize them; extract chapter markers; and draft publishing assets like titles, YouTube descriptions, show notes, and tweet/X copy. Use when a user shares a YouTube link or audio/video file and asks for transcription, diarization, summaries with timestamps, chapter markers, show notes, titles, descriptions, promo copy, or social posts. Especially use for Whisper-based workflows, source-audio-first podcast processing, and any request to turn a recorded conversation into publishable assets.

  • Reads credentials

We split this skill into the rules it gives an agent

24 rules. About 0 are common, 23 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈23

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill for podcast or interview publishing workflows.

    line 8
  2. Distinctive:

    Prefer source audio over platform captions.

    line 17
  3. Distinctive:

    Do not rely on YouTube captions unless the user explicitly asks for the fastest possible rough pass.

    line 18
  4. Distinctive:

    If the user has a formatting preference, preserve it exactly on later turns.

    line 20
  5. Distinctive:

    Default chapter output for swyx: YouTube timestamp format only, start times only, followed by a 2 to 10 word headline.

    line 21
  6. Distinctive:

    Prefer MP3 output for compatibility.

    line 27
  7. Distinctive:

    If the file is too large, compress before retrying, for example mono 16 kHz MP3 around 32 kbps.

    line 32
  8. Distinctive:

    If API transcription still fails, fall back to local Whisper.

    line 33
  9. Very specific:

    If a script exists but is not executable, invoke it with bash rather than failing on permissions.

    line 34
  10. Distinctive:

    Keep the user updated during long jobs.

    line 36
  11. Distinctive:

    If a fallback happens, say what failed in one line and continue.

    line 38
  12. Distinctive:

    Prefer real timestamps if the transcription source provides segments.

    line 49
  13. Distinctive:

    If the transcript is a single plain-text blob, estimate coarse chapter times conservatively and label them as approximate if needed.

    line 50
  14. Distinctive:

    When speaker labels are needed without true diarization, reconstruct heuristically from turn-taking and identify this clearly as …

    line 59
  15. Distinctive:

    When a user wants publishing help, default to a reusable launch pack.

    line 63
  16. Distinctive:

    Prefer thesis first, guest second.

    line 69
  17. Distinctive:

    Keep them specific, not generic.

    line 70
  18. Distinctive:

    Use YouTube timestamp format only, start times only, 2 to 10 word headlines.

    line 89
  19. Distinctive:

    Prefer clean, arguable lines with strong standalone meaning.

    line 100
  20. Distinctive:

    Prefer concrete bullets over abstract topic labels.

    line 107
  21. Distinctive:

    If the audience is technical, specificity beats hype.

    line 110
  22. Distinctive:

    Prefer speed first, but do not fake certainty.

    line 130
  23. Distinctive:

    If a transcript path is broken, say what failed and continue with the next fallback.

    line 131
  24. Distinctive:

    If the user says a format like “always give me YouTube timestamp format”, treat that as a sticky preference for the rest of the task.

    line 133

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Podcast Publishing Assistant

Use this skill for podcast or interview publishing workflows.

Apply swyx-writing to summaries, titles, descriptions, show notes, newsletter blurbs, and social copy. Do not apply it to verbatim transcripts or speaker labels. This skill owns transcription, timing, chapter, and publishing-pack requirements.

Core rules

  • Prefer source audio over platform captions.
  • Do not rely on YouTube captions unless the user explicitly asks for the fastest possible rough pass.
  • For Whisper or API transcripts, be honest about uncertainty. Do not claim true diarization unless the tool actually produced it.
  • If the user has a formatting preference, preserve it exactly on later turns.
  • Default chapter output for swyx: YouTube timestamp format only, start times only, followed by a 2 to 10 word headline.

Workflow

  1. Fetch source audio first.
    • For YouTube URLs, use yt-dlp to extract audio.
    • Prefer MP3 output for compatibility.
  2. Transcribe with a fallback ladder.
    • First try the OpenAI Whisper API when OPENAI_API_KEY is available.
    • The OpenAI audio transcription upload cap is about 25 MB. Expect long episodes to exceed it.
    • If the file is too large, compress before retrying, for example mono 16 kHz MP3 around 32 kbps.
    • If API transcription still fails, fall back to local Whisper.
    • If a script exists but is not executable, invoke it with bash rather than failing on permissions.
  3. Keep the user updated during long jobs.
    • Brief progress notes are enough: downloading, compressing, transcribing, packaging.
    • If a fallback happens, say what failed in one line and continue.
  4. Produce the publishing pack.
    • Summary tuned for someone deciding whether to watch or listen.
    • Key takeaways or key arguments.
    • 5 title ideas when asked.
    • 5 description ideas when asked.
    • Chapter timestamps.
    • Optional: tweet thread, show notes, key quotes, newsletter blurb.
  5. Package timestamps correctly.
    • Prefer real timestamps if the transcription source provides segments.
    • If the transcript is a single plain-text blob, estimate coarse chapter times conservatively and label them as approximate if needed.
    • For swyx, default to this exact style:
      • 0:00 Intro and origin story
      • 3:30 How the brand grew

Transcript quality notes

  • OpenAI Whisper API often returns plain text unless a segment-rich response format is requested elsewhere.
  • Plain text transcripts are good for summaries and rough chapters, but weak for precise diarization.
  • When speaker labels are needed without true diarization, reconstruct heuristically from turn-taking and identify this clearly as approximate.

Launch template

When a user wants publishing help, default to a reusable launch pack.

Standard launch pack

  1. YouTube titles
    • Provide 3 to 4 options.
    • Prefer thesis first, guest second.
    • Keep them specific, not generic.
  2. YouTube descriptions
    • Provide 3 to 4 options.
    • Each should include:
      • one short framing paragraph
      • 3 to 6 concrete bullets on what the audience will learn
      • chapter markers in YouTube timestamp format when available
  3. X main post
    • Provide 3 to 4 options.
    • Structure:
      • hook or thesis
      • guest credibility line
      • 3 to 6 concrete bullets
      • link placeholder or actual link
  4. X follow-up reply
    • Provide 1 concise timestamps-only reply unless the user asks for more.
    • Use YouTube timestamp format only, start times only, 2 to 10 word headlines.
  5. Native clip ideas
    • Provide 3 to 4 options.
    • For each clip idea, include:
      • clip theme
      • why it works as promo
      • rough timestamp window if known
  6. Quote card ideas
    • Provide 3 to 4 options.
    • Prefer clean, arguable lines with strong standalone meaning.

Packaging guidance

  • Distinguish between:
    • what the episode is about
    • why it matters now
  • Prefer concrete bullets over abstract topic labels.
  • For X, optimize for curiosity plus utility, not just announcement tone.
  • For YouTube, optimize for searchable thesis plus guest credibility.
  • If the audience is technical, specificity beats hype.

Output format

Default output order:

  1. Short summary
  2. Key takeaways
  3. Chapter timestamps
  4. 3 to 4 title options
  5. 3 to 4 description options
  6. 3 to 4 X post options
  7. 3 to 4 clip ideas
  8. 3 to 4 quote card ideas

Scripts

  • scripts/transcribe_youtube.sh: download audio from YouTube, shrink oversized audio for Whisper API, and fall back cleanly.

Notes

  • Prefer speed first, but do not fake certainty.
  • If a transcript path is broken, say what failed and continue with the next fallback.
  • For long episodes, give the user a progress update before the final packaging pass.
  • If the user says a format like “always give me YouTube timestamp format”, treat that as a sticky preference for the rest of the task.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.