github EgalitarianMonkey/hometube v2.13.0

4 hours ago

Fixed

A crash on videos whose format metadata is incomplete. yt-dlp can return format entries where vcodec, format_note, language or container are explicitly null rather than absent. HomeTube treated them as strings and raised AttributeError, taking the page down on certain videos and sources (#137). Sixteen such lookups are now null-safe.

The same change fixes a quieter one: a format with an unknown video codec was being dropped as if it had no video at all. vcodec: "none" means audio-only; null only means the codec could not be determined — common with HLS and generic extractors.

New

A hosted HomeTube you can try in a browser. The Content note in the app, and the README, now point at hometube-app.latentnoise.dev: the same screen this app shows, run by someone else, reachable with an email address and no Docker. Self-hosting stays free and unlimited — that is what this repository is for.

Under the hood

  • The log buffer behind #82 moved out of main.py into logs_utils.py and is now covered by tests that pin what keeps it bounded.
  • Test coverage was measuring a module deleted eleven months ago (app.utils, split up in #46), so it reported on 51 of 6167 statements. It now measures the whole package.
  • Dependency updates: streamlit, ruff, altair, anyio, idna, narwhals, platformdirs, protobuf, tzdata, urllib3, uvicorn, packaging.

Verified

Built from this tag and run end-to-end on a real homelab: container healthy, and on a French video with two audio tracks the download still resolves to the renumbered id — and the audio in the final file is byte-identical to the French original.


What's Changed

🚀 Features

🐛 Fixes

🧹 Maintenance

Other changes

Full Changelog: v2.12.3...v2.13.0


HomeTube is built on Content, the engine behind it — or try it in your browser, no install.

Don't miss a new hometube release

NewReleases is sending notifications on new releases.