@lvrged/yt
v0.1.0
Published
YouTube research pipeline for Pi: headless yt-dlp search, audio-only download, and speech-to-text transcription with an interchangeable backend (OpenRouter, OpenAI, Groq, or local whisper.cpp). Search a topic and get transcribed research-ready text in one
Maintainers
Readme
@lvrged/yt
YouTube research pipeline for Pi: headless search, audio-only download, and speech-to-text transcription. The voice-to-text backend is interchangeable — bring OpenRouter, OpenAI, Groq, or a local whisper.cpp and flip a switch.
It's the "make YouTube into a research brief" workflow:
pick a topic → yt_scrape_topic → transcribed, source-cited text for a briefLatest: v0.1.0
Install
pipkg install # or
npx -y @lvrged/yt # actually: add to pi settings.json packagesAdd to your Pi settings packages:
"packages": ["npm:@lvrged/yt"]Requires yt-dlp and ffmpeg on PATH, and at least one STT credential.
Tools
yt_find— headless YouTube search (no API key), returns ranked results.yt_transcribe— one video → verbatim transcript.yt_scrape_topic— search + filter + transcribe N videos into one research pack.yt_info— which STT backends are available, and the effective default.
Interchangeable STT
Transcription uses whichever backend the host already has:
| backend id | key / prereq | endpoint | notes |
|---|---|---|---|
| openrouter-chat | OPENROUTER_API_KEY or ~/.pi/agent/auth.json#openrouter.key | chat-completions input_audio | default; no whisper models exist on OpenRouter |
| groq-api | GROQ_API_KEY | /audio/transcriptions | whisper-large-v3-turbo; fastest $/min |
| openai-api | OPENAI_API_KEY | /audio/transcriptions | whisper-1 / gpt-4o-mini-transcribe |
| whisper-cpp | whisper-cli on PATH + a ggml model | local | offline, free; set YT_WHISPER_MODEL |
Switch via the transcriber tool param, or YT_TRANSCRIBER env
(e.g. YT_TRANSCRIBER=groq-api). Auto-detect picks the first one present.
Development
npm install # dev deps for typechecking
npm run check # tsc --noEmit
npm run publish:patch # bump + publishThe package is a standard pi package: extension/ for tools, skills/ for the
skill doc. Transcription lives in extension/transcribers.ts — a provider
Registry with a shared contract, so adding a backend is a ~40-line adapter.
