yt-dlp + Whisper → Shorts Highlights
D5.0Use `scripts/yt_to_shorts.py` to automate: (1) audio download, (2) Whisper transcription, (3) highlight picking from the SRT.
Get This Skill on GitHubOverview
name: yt-dlp-whisper-shorts description: Download YouTube audio with yt-dlp, transcribe with Whisper to create timestamped subtitles (SRT), then analyze the transcript to recommend 15–60s Shorts-ready highlight segments with timecodes, hook text, clear reasons, and editing/narration suggestions. Use when a user provides a YouTube link and asks for transcription/subtitles, highlight extraction, or Shorts clip recommendations.
yt-dlp + Whisper → Shorts Highlights
Use scripts/yt_to_shorts.py to automate: (1) audio download, (2) Whisper transcription, (3) highlight picking from the SRT.
Quick start
Run end-to-end (download → transcribe → suggest):
python3 scripts/yt_to_shorts.py "<YOUTUBE_URL>" --language ko --min-sec 15 --max-sec 60 --count 3
Use an existing subtitle file (skip download/transcribe):
python3 scripts/yt_to_shorts.py "<YOUTUBE_URL>" --no-download --no-transcribe --srt-file "<PATH_TO.srt>"
Workflow (agent)
- Confirm:
- The YouTube URL
- Target language (use
--language kofor Korean, or omit to auto-detect) - Desired Shorts length (default 15–60s) and number of picks (default 3)
- Run
scripts/yt_to_shorts.pyand read the generatedhighlights.md. - Sanity-check each pick in the SRT:
- Start should hook within 1–2s; if it starts slow, shift the in-point earlier to a stronger line.
- Avoid section transitions (“다음으로…”) mid-clip; trim before the transition or add a 1-line narration bridge.
- Respond with 3 candidates:
- Exact start/end timecodes, duration
- Clear selection reasons (hook, payoff, usefulness, emotion, proof shot)
- Concrete edit plan (opening text, jump cuts, overlays/B-roll, optional narration)
Outputs
Default output structure:
./yt_shorts/<video_id>/<video_id>.mp3(when downloaded)./yt_shorts/<video_id>/<video_id>.srt(when transcribed)./yt_shorts/<video_id>/highlights.md./yt_shorts/<video_id>/highlights.json
Notes
- Requires
yt-dlpandwhisperinPATH. - Downloading from YouTube requires network access; in restricted environments this may require user approval.
- If yt-dlp warns about missing JS runtime (EJS), add an appropriate runtime or pass extra args via
--yt-dlp-args. - For additional heuristics/templates, see
references/shorts-selection.md.
What This Skill Can Do
AI-generated examples showing real capabilities
Ready to use this skill?
Visit the original repository to get the full skill configuration and installation instructions.
View on GitHub