Skip to content

v2.1.0 - Doctor, self-update, SponsorBlock

Choose a tag to compare

@nekonaru nekonaru released this 13 Oct 13:20
· 6 commits to main since this release

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.json next to the file.
  • Auto .m3u: audio playlists (--playlist all) now also write an .m3u file.

⚡ 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 to lumenfetch.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) and core/doctor.py (diagnostics) modules; main.py slimmed down.
  • Coverage gate (80%) and trusted-publishing workflow (publish.yml) in CI.
  • Windows lumenfetch.exe attached 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 lumenfetch

No new required dependencies.

🚀 Usage examples

Diagnose your setup:

lumenfetch --doctor

Skip sponsors and save metadata:

lumenfetch "https://youtube.com/watch?v=..." -t video --sponsorblock sponsor intro --write-info-json -y



Bahasa 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.json di sebelah file.
  • .m3u otomatis: 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 ke lumenfetch.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) dan core/doctor.py (diagnostik); main.py dirampingkan.
  • Coverage gate (80%) dan workflow trusted-publishing (publish.yml) di CI.
  • lumenfetch.exe Windows 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 lumenfetch

Tidak ada dependency wajib baru.

🚀 Contoh pakai

Diagnosa setup:

lumenfetch --doctor

Lewati sponsor dan simpan metadata:

lumenfetch "https://youtube.com/watch?v=..." -t video --sponsorblock sponsor intro --write-info-json -y