Repository navigation
v2.1.0 - Doctor, self-update, SponsorBlock
English
v2.1.0 - Doctor, self-update, and SponsorBlock
✨ New features
lumenfetch doctor: diagnoses your setup in seconds - Python, ffmpeg,curl_cffi, yt-dlp version, lumenfetch version, YouTube reachability, browser-cookie readability, and config writability, each with a specific fix hint.- Self-update notice: tells you when a newer lumenfetch is on PyPI (
pip install --upgrade lumenfetch), next to the existing yt-dlp notice. --sponsorblock: skip SponsorBlock segments, e.g.--sponsorblock sponsor intro outro.--write-info-json: save video metadata as.info.jsonnext to the file.- Auto
.m3u: audio playlists (--playlist all) now also write an.m3ufile.
⚡ Optimizations
- Parallel-safe downloads: two batch workers for the same title no longer overwrite each other's file (atomic name reservation, verified live 2/2).
- Loud batch failures: batch mode now prints which URL failed and why instead of failing silently (also handles BOM-prefixed files from PowerShell).
- Quiet terminal: raw yt-dlp
ERROR:noise is redirected tolumenfetch.log; the terminal only shows friendly messages.
🐛 Bug fixes
- Fixed batch URLs with a BOM prefix being silently skipped.
- Fixed batch mode swallowing per-URL errors (now printed with the failing URL).
- Fixed a race where parallel downloads of duplicate titles corrupted each other's output.
🧱 Internal improvements
- New
core/cli.py(argument parsing) andcore/doctor.py(diagnostics) modules;main.pyslimmed down. - Coverage gate (80%) and trusted-publishing workflow (
publish.yml) in CI. - Windows
lumenfetch.exeattached below - no Python needed.
🧪 Testing
Total is now 216 tests, all passing. SponsorBlock, info-json, .m3u, reservation race, and doctor are covered by new tests.
📦 Install / Update
pip install --upgrade lumenfetchNo new required dependencies.
🚀 Usage examples
Diagnose your setup:
lumenfetch --doctorSkip sponsors and save metadata:
lumenfetch "https://youtube.com/watch?v=..." -t video --sponsorblock sponsor intro --write-info-json -yBahasa Indonesia
v2.1.0 - Doctor, self-update, dan SponsorBlock
✨ Fitur baru
lumenfetch doctor: mendiagnosa setup dalam hitungan detik - Python, ffmpeg,curl_cffi, versi yt-dlp, versi lumenfetch, keterjangkauan YouTube, keterbacaan cookies browser, dan keterulisan config, masing-masing dengan saran fix spesifik.- Notice self-update: memberi tahu kalau ada lumenfetch lebih baru di PyPI (
pip install --upgrade lumenfetch), di samping notice yt-dlp yang sudah ada. --sponsorblock: lewati segmen SponsorBlock, mis.--sponsorblock sponsor intro outro.--write-info-json: simpan metadata video sebagai.info.jsondi sebelah file..m3uotomatis: playlist audio (--playlist all) sekarang juga nulis file.m3u.
⚡ Pengoptimalan
- Download paralel yang aman: dua worker batch untuk judul yang sama tidak lagi saling menimpa file (reservasi nama atomik, terverifikasi live 2/2).
- Batch gagal yang bersuara: mode batch sekarang menampilkan URL mana yang gagal dan kenapa, bukan gagal diam-diam (termasuk file ber-prefix BOM dari PowerShell).
- Terminal yang tenang: noise mentah
ERROR:dari yt-dlp dialihkan kelumenfetch.log; terminal cuma menampilkan pesan ramah.
🐛 Perbaikan bug
- Perbaiki URL batch ber-prefix BOM yang diam-diam dilewati.
- Perbaiki mode batch yang menelan error per-URL (sekarang ditampilkan bersama URL yang gagal).
- Perbaiki race di mana download paralel judul duplikat merusak output satu sama lain.
🧱 Peningkatan internal
- Modul baru
core/cli.py(parsing argumen) dancore/doctor.py(diagnostik);main.pydirampingkan. - Coverage gate (80%) dan workflow trusted-publishing (
publish.yml) di CI. lumenfetch.exeWindows terlampir di bawah - tanpa perlu Python.
🧪 Testing
Total sekarang 216 test, semua lolos. SponsorBlock, info-json, .m3u, race reservasi, dan doctor dicover test baru.
📦 Install / Update
pip install --upgrade lumenfetchTidak ada dependency wajib baru.
🚀 Contoh pakai
Diagnosa setup:
lumenfetch --doctorLewati sponsor dan simpan metadata:
lumenfetch "https://youtube.com/watch?v=..." -t video --sponsorblock sponsor intro --write-info-json -y