github AstraeLabs/VibraVid v1.4.0

6 hours ago

Setup

  • Add log_engine_output DRM flag and --log-decryptor-output CLI switch to tag Bento4/Shaka/flux subprocess output in the log
  • Add ARR.anime_id_crosswalk_enabled config flag for the MAL/AniList→TMDB crosswalk
  • Add a background thread that re-fetches domains.json every 30 minutes and invalidates cached domain lookups

Decryptor / DRM

  • Detect legacy PIFF-brand (pre-CMAF Smooth Streaming) content and log it
  • Prefer a scheme that maps to a known decrypt mode when multiple schm boxes disagree, instead of always taking the first one

Velora Downloader Pipeline (live decrypt & merge)

  • Add in-flight (per-fragment) live decrypt and merge support for HLS SAMPLE-AES and ISM DRM streams, previously limited to DASH
  • Treat DASH multi-period manifests where every Period shares the same underlying media segment (SSAI ad-break signaling) as single-period
  • HLS parser: resolve #EXT-X-BYTERANGE offsets into per-segment Range request headers

MP4 Progressive Download (in-flight decrypt)

  • Add LiveFragMp4Decryptor + FragBoxSplitter: decrypt a plain progressive MP4 fragment-by-fragment as it downloads instead of after

Muxing / Tagging

  • Add chapters.txt OGM sidecar persistence into the downloader's temp dir whenever chapters are injected
  • Replace -shortest with explicit -t <video_duration> for more precise trimming
  • Log the ffmpeg tail output on a non-zero Join Media exit code
  • Detect MPEG-TS content prefixed by a PNG wrapper
  • Drop empty (0-byte) subtitle tracks before merge instead of feeding them to ffmpeg
  • Add lyrics tagging support (FLAC lyrics, MP4 ©lyr, Opus lyrics, MP3 USLT)

Lyrics Provider

  • Wire lyrics lookup into the Amazon Music download path

ARR / Anime TMDB Matching

  • Add VibraVid/utils/anime_id_map.py: MAL/AniList→TMDB/TVDB crosswalk from the Fribb/anime-lists dataset, 24h disk cache with stale-on-failure fallback
  • AnimeUnityAPI/AnimeWorldAPI.resolve_tmdb_id: resolve TMDB id via crosswalk when the provider exposes none directly

Selector / Utils

  • FilterSpec.parse: accept both short and long native filter keys (res, lang/langs, codec/codecs, bitrate, id, for), with a warning fallback for unrecognized keys

GUI / ARR

  • cinema_base.html: add an in-app update-available banner
  • ArrDownloaderService: thread episode_number through for split-cour anime downloads

Full Changelog: v1.3.9...v1.4.0

Don't miss a new VibraVid release

NewReleases is sending notifications on new releases.