github Zibbp/ganymede v4.6.0

18 days ago

Important

If you are running the :dev container image now is the best time to switch back to :latest or the semver version.

New Features

Migrate to yt-dlp

Streamlink has been replaced with yt-dlp for downloading videos. Yt-dlp supports Twitch "enhanced broadcasting" which has been a requested feature. This is a drop-in replacement and requires no modifications on your end. If you had any custom streamlink arguments those will not work anymore and you will need to find suitable replacements to use with yt-dlp.

See #782 for details.

1440p / Enchanced Broadcasting Support

Now that Ganymede uses yt-dlp, the "enhanced broadcasting" feature is supported.

Enhanced broadcasting is still in the "beta" stage at Twitch so there are some limitations:

  • Twitch region locks 1440p streams
  • You must have your Twitch token set in Admin>Settings for this to work, Twitch locks the better quality behind authentication

Some more technical details and concerns with enhanced broadcasting from the above issue:

Enhanced broadcasting (4K/hevc) moves away from mpeg-ts to fragmented MP4 containers as the container in the HLS playlist. This is extremely annoying as fMP4 is super sensitive to disruption, compared to mpeg-ts. Ultimately this means if you archive an enhanced broadcast stream/4K stream without an ad-free stream (subscriber or turbo) it will not play in the browser if an ad is served. The resulting video stream is "corrupted" enough that web players cannot handle it. If you have turbo or a a subscriber with your Twitch token then this is not an issue. This is also not an issue if you use a proxy, though that will not be 4K because of geo restrictions and not being signed in.
I've also found that channels that participate in the enhanced broadcasting only serve fMP4 and not mpeg-ts even for lower resolutions

If you have any ideas to resolve this issue please post to the above issue.

New HTTP Proxy

A standard HTTP proxy type has been added for ad-free Twitch proxies. The previous proxy setting has been renamed to "TwitchHLS".
image

Playlist Automation Rules

#818

Automation rules can now be added to playlists to automatically add videos to playlists. The rules support basic <key> <operator> <value> logic to compare keys and values for a few video fields.

Playlist rules can be managed per playlist on the "Playlists" page using the new "video automation rules" button.
image

Example playlist rule to automatically add all "Path of Exile" videos to the playlist.

image

Current available fields:

  • title
  • type
  • category
  • platform
  • channel name

Current available operators

  • equals
  • contains (case insensitive)
  • regex

A task runs every hour to process playlist automation rules. The task can be run manually at Admin>Tasks.

Date Storage Template Variables

Added date variables for storage templates in #833

What's Changed

  • Extend translation-coverage.js to allow auto-updating translation files by @CompileNix in #810
  • Update german translations by @CompileNix in #811
  • build(deps): bump github.com/alexedwards/scs/v2 from 2.8.0 to 2.9.0 by @dependabot[bot] in #813
  • build(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 by @dependabot[bot] in #814
  • build(deps): bump github.com/shirou/gopsutil/v4 from 4.25.1 to 4.25.6 by @dependabot[bot] in #815
  • build(deps): bump github.com/testcontainers/testcontainers-go from 0.37.0 to 0.38.0 by @dependabot[bot] in #819
  • Migrate to yt-dlp by @Zibbp in #812
  • Update german translations for: Migrate to yt-dlp #812 by @CompileNix in #826
  • build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres from 0.37.0 to 0.38.0 by @dependabot[bot] in #824
  • build(deps): bump github.com/swaggo/swag from 1.16.4 to 1.16.5 by @dependabot[bot] in #825
  • build(deps): bump form-data from 4.0.1 to 4.0.4 in /frontend by @dependabot[bot] in #823
  • use main branch in update-dependencies by @Zibbp in #827
  • feat: Playlist rules by @Zibbp in #829
  • Update translations by @CompileNix in #830
  • feat: add granular date variables for storage templates by @Zibbp in #833
  • build(deps): bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 by @dependabot[bot] in #837
  • build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.1 to 4.1.2 by @dependabot[bot] in #835
  • build(deps): bump github.com/coreos/go-oidc/v3 from 3.14.1 to 3.15.0 by @dependabot[bot] in #834
  • build(deps): bump github.com/swaggo/swag from 1.16.5 to 1.16.6 by @dependabot[bot] in #836
  • build(deps): bump node from 22-alpine to 24-alpine by @dependabot[bot] in #821
  • build(deps): bump github.com/docker/docker from 28.2.2+incompatible to 28.3.3+incompatible by @dependabot[bot] in #831
  • build(deps): bump golang.org/x/crypto from 0.40.0 to 0.41.0 by @dependabot[bot] in #839
  • build(deps): bump entgo.io/ent from 0.14.4 to 0.14.5 by @dependabot[bot] in #842
  • build(deps): bump github.com/shirou/gopsutil/v4 from 4.25.6 to 4.25.7 by @dependabot[bot] in #843
  • feat: return queue and video object in archive response by @Zibbp in #848
  • Fix twitch channel image 403 by @Zibbp in #849
  • Bump frontend by @Zibbp in #850
  • feat(live): add 'no category' category option by @Zibbp in #853

Translation Status

Translation coverage report for frontend/messages/*.json
🎉 All translations are present in all locales 🎉

Translation stats:
de: 100% translated (684/684) with 0 missing translations and 0 extra translations

Full Changelog: v4.5.0...v4.6.0

Don't miss a new ganymede release

NewReleases is sending notifications on new releases.