YouTube Fetcher v1.2.0 makes everyday capture safer and works better across languages, while keeping the portable, no-API-key workflow.
Improvements
- Protect existing Markdown, JSON, SRT, plain-text, and WebVTT files. Refresh an existing default note in place and preserve its permissions.
- Select captions using ordered language preferences, regional variants,
--lang auto, or--strict-lang. - Request YouTube machine translation explicitly with
--translate, with source language and translation provenance recorded in Markdown. - Jump to video moments through linked timestamps and chapters. Export plain text with
--format txtand WebVTT with--format vtt. - Bound network requests, skip optional metadata with
--no-metadata, and report useful access, timeout, translation, and filesystem errors. - Improve isolated setup, safe agent behavior, Unicode filenames/output, and cross-platform regression coverage.
Upgrade notes
- Existing destinations now return exit code 3 in every format and in interactive terminals. Use
--forceonly when you intend to replace the entire file, including annotations. --format textremains Markdown for compatibility; use--format txtfor plain text.- New-file publication is atomic on filesystems supporting hard links. Other filesystems use exclusive creation, which preserves existing files but can expose a new file while it is being written.
- YouTube caption access and translation availability still depend on the video and network. No audio download, browser-cookie access, or paid service is added.
Install
npx skills add JimmySadek/youtube-fetcher-to-markdownSee the README for isolated Python setup and the complete command reference.
Verification
61 regression tests; GitHub CI on Linux (Python 3.8 and 3.14), Windows (3.13), and macOS (3.13); local compatibility through Python 3.14 and the minimum supported caption-library version; Skills CLI 1.5.23 isolated installation; live full-video capture and Japanese-to-English translation.
Release pull request: #4