Skip to content

Releases: Zibbp/ganymede

v1.1.3 - Chat Render Fix

21 Dec 21:26
Compare
Choose a tag to compare

Changes

  • build(docker): include fallback fonts in 9e50904.
    • Inter font does not support all symbols in other languages which would cause the chat render to fail. The container now includes "Noto" as a backup font with support for many languages.

Full Changelog: v1.1.2...v1.1.3

v1.1.2 - TwitchDownloader Update

16 Dec 15:59
Compare
Choose a tag to compare

What's Changed

  • Bump TwitchDownloader to v1.51.1 which includes many updates and fixes. I encourage you to read through the updates up to 1.51.1 to see what has changed.

    • Update execute commands to use the new syntax in b27c9ad.
    • Bump TwitchDownloader version in container Dockerfile and dev container Dockerfile 0b8c4b1.
  • Live chat data is now embedded while being converted 9a04894.

    • Utilizing a new feature released in TwitchDownloader, the live stream chat emotes, badges, and bits are embedded in the chat file similar to a VOD 9a04894.
    • image
    • Allow the use of the new "embeddedData" JSON object found in chat files ae4c3a2.
    • Currently only the emotes are being used from the embedded data for both live chats and vods. In the future I will prefer embedded badges over fetching badges from Twitch.

The TwitchDownloader "updatechat" function can either embed missing emotes into a chat file, or update the embeds with newer versions. Previous to this release, live stream archives did not have embedded emotes. This may cause missing emotes during playback if those emotes are ever deleted.

While I do not have a plan to implement an endpoint which will use TwitchDownloader's "updatechat" function. It can be done yourself either using the CLI or GUI. Do note, some older live stream chats or VODs may use strings instead of integers for numbers causing issues. You will have to manually change that.

Full Changelog: v1.1.1...v1.1.2

v1.1.1 - Better Notifications

25 Nov 20:41
aeed6c8
Compare
Choose a tag to compare

What's Changed

  • fix(build): add tzdata to the Dockerfile to support the TZ environment variable a0f6d79.
  • fix(chat): allow streamer id in chat.json to be either int or string, this is to support older chat files 63641c7.
  • fix(scheduler): do not panic on bad TZ data, default to UTC cf9449f.
  • feat(build): add VSCode dev container support 3d2853b.
  • feat(notifications): Better notification support by @Zibbp in #65

image

Full Changelog: v1.1.0...v1.1.1

v1.1.0 - Chat Playback & New Frontend

23 Nov 17:47
Compare
Choose a tag to compare

v1.1.0 is the largest update to date with many new features. Check them out below.

New Features

  • New Frontend!

    • The new frontend has been released. It is published under the same image tag, simply pull down the latest containers. The frontend is now written in React using NextJS.
      image
  • Chat Playback

    • A new chat playback mode has been added. This mode displays the message in real time, similar to watching a Twitch VOD. More information can be found below. If you want to stick to the rendered video chat playback, there is an option in the "profile" page.
      brave_gF3XxIPnS4
  • Watch Channels for new videos

    • Similar to watching a channel to archive live streams, a feature has been added that allows you to watch a channel for new videos to archive.
      image

What's Changed

  • feat: VOD Chat Playback by @Zibbp in #55
  • feat(cache): cache chat requests by @Zibbp in #62

Chat Playback Details

By default, the method of chat playback is now the "experimental" real time chat playback system. If you wish to use the rendered video chat playback, a setting can be found in the "profile" page. Every archive will still render the chat into a video as Ganymede is primarily an archiving platform. A video of the chat will outlast Ganymede by many many years.

How it works

When navigating to watch a VOD Ganymede will first check if there are embedded emotes in the VOD's chat file. If so, those emotes will be exclusively used. If no emotes are not found, Ganymede will fetch global and channel emotes from Twitch, BTTV, FFZ, and 7TV. This same process occurs with badges.

When playback starts the frontend will request 10 second segments of the chat. While doing this, the API will cache the chat json to improve response times of this request. Caching is being used as some of the chat files can grow to hundreds of megabytes depending on the number of embedded emotes. Caching the chat significantly speeds up the chat requests for playback.

When a skip (seek) in time is detected, the chat is cleared and different chat request is called before the typical 10 second segment api call. This api call fetches 30 comments before the destination seek time to populate the empty chat panel.

Full Changelog: v1.0.9...v1.1.0

v1.0.9 - Live Stream Ads Hotfix

18 Nov 20:22
Compare
Choose a tag to compare

Release discussion: #57

Changed

  • Added new entry in config.json for Streamlink arguments.
    • Removed --twitch-disable-ads from the default arguments as with the ad change this results is the ad segments being cut out from the stream, resulting in a shorter video than what was broadcasted.
  • Live stream archives now use the supplied arguments.

Arguments can be modified in Admin > Settings in the frontend. Visit the wiki for more information about modifying the arguments.

v1.0.8 - SSO/OIDC Support

15 Nov 02:48
Compare
Choose a tag to compare

What's Changed

  • package: Bump TwitchDownloader in 008fe25.
    • 1.50.6 release notes.
    • Chat rendering now allows the option to filter out badges. Visit the docs for more information.
      • Example to remove predictions & no audio/visual badges: --badge-filter 96
  • feat: OAuth Support by @Zibbp in #53
    • Visit the SSO/OIDC docs to get started.
    • This is my first time working/implementing OIDC/SSO so if you find any issues please open an issue.

v1.0.7

04 Nov 14:02
Compare
Choose a tag to compare

Features

Fixes

  • Allow live thumbnail job to fail without blocking (see #51). 9a32d35

v1.0.6 - TwitchDownloader Update

30 Oct 04:17
Compare
Choose a tag to compare

Warning

This release contains changes that break backwards compatibility with rendering live chats to "vod" chats. Any live chat saved before this version cannot be rendered with this version.

What's Changed

  • build(deps): bump github.com/labstack/echo/v4 from 4.7.2 to 4.9.0 by @dependabot in #42
  • Bump TwitchDownloader to version 1.50.5,
    • Changes for Twitch Downloader v1.50.4 by @Zibbp in #47
      • fix(chat conversion): use string for badge version 8b58003
      • fix(chat conversion): use "null" for empty emoticon fragments d3ad6b4
      • feat(live): create chat conversion endpoint for faster testing 6548f5a
      • fix(chat-convert): badge version now converts to string 8a82415
      • fix(chat-convert): allow int and string from live chat badge version a1c0aa2
      • build(docker): use forked version of chat-downloader 13001e1
  • Forked chat-downloader is now used in the Docker image. In this fork a change was made to parse Twitch's new emoticon_id schema which was causing issues while rendering, see #50

Full Changelog: v1.0.5...v1.0.6

v1.0.5 - Live Check Change

20 Sep 15:15
d074649
Compare
Choose a tag to compare

This update will reset your live stream check interval.

What's Changed

  • Changed check live stream schedule to use seconds by @taeganwarren in #40
    • On first boot of the new update, the live_check_interval variable in the config file will be renamed to live_check_interval_seconds and set to a default of 300 (five minutes).
    • Do note, Twitch has an API limit of 30 requests per minute. To be on the safe side, I would advice the minimum live_check_interval_seconds to be 5 seconds.

Full Changelog: v1.0.4...v1.0.5

v1.0.4 - Live Archive Fix

13 Sep 21:08
d00ae2d
Compare
Choose a tag to compare
  • Fix issue when live archiving without chat option selected.
    • If the live archive did not have the chat option selected, the video post-process would fail attempting to terminate the chat download process.
    • fix(archive): continue live video post-process if no chat by @Zibbp in #38