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.pyintologs_utils.pyand 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
- feat(notifications): point the Content note at the hosted trial by @EgalitarianMonkey in #149
🐛 Fixes
- fix(formats): use falsy-safe fallbacks for null yt-dlp format metadata by @YannOrieult in #138
- fix(ci): measure coverage on a module that still exists by @EgalitarianMonkey in #150
🧹 Maintenance
- chore(deps): bump the python-minor-patch group across 1 directory with 11 updates by @dependabot[bot] in #148
- chore(deps): bump packaging from 25.0 to 26.3 by @dependabot[bot] in #134
- chore(release): bump version to 2.13.0 by @EgalitarianMonkey in #152
Other changes
- test(logs): pin the bounded log buffer behind issue #82 by @EgalitarianMonkey in #151
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.