Skip to content

Application Settings

Isaac edited this page Jul 22, 2023 · 14 revisions

Config Options

Any changes made directly to the config.json file requires a restart of the container. Config changes that are made available in the frontend do not require a container restart.

Need the default values? Take a look at the code.

Config Values

These values are can only be modified by editing the config.json file and restarting the container afterwards. For config values that can be modified in the frontend checkout the below sections.

debug Type: boolean Default: false Description: If debug logging is enabled.

live_check_interval_seconds Type: int Default: 300 Description: Interval in seconds to check if watched channels are live.

active_queue_items Type: int Default: 2 Description: Max number of active queue items. Any more than the number are placed on a hold until a slot is free. Recommended is two 2 to avoid Twitch rate limiting.

db_seeded Type: bool Default: false Description: Whether the database is seeded. This creates the initial admin user account.

Application Settings (Admin / Settings)

Core

These values can be modified in the frontend and do not require a container restart.

Registration Enabled

Whether registration is enabled on the server.

Notification Settings

Open the notification settings by clicking the "Notification Settings" button.

Four webhook notifications are available video archive success, live archive success, is live, and error. Each of these notifications accepts different webhook urls and templating. Available template variables can be found below each input.

Archive

Convert to HLS

Optionally the archived mp4 can be converted to a HLS playlist. This benefits load times if you are publicly hosting Ganymede. Stick to having this disabled if you only use Ganymede locally or do not care about the remote load times.

Storage Templates

Open the storage template settings by clicking the "Storage Template Settings" button.

Visit the dedicated Storage Templates and Migration document for more information.

Video

Twitch Token

Optionally supply your Twitch token to download subscriber only videos if you are a subscriber and ad-free livestreams. For information about how to obtain your token read the Streamlink documentation or follow below.

  1. Open Twitch
  2. Open the browser developer console with Ctrl + Shift + I
  3. Click the "console" tab at the top.
  4. Paste the following into the bottom input section and press enter.
document.cookie.split("; ").find(item=>item.startsWith("auth-token="))?.split("=")[1]
  1. Copy the string without the quotes (') and enter into Ganymede.
Notes

If the video download fails with a log error of "no playable streams found on this URL" it means your token is invalid.

Streamlink Arguments

Streamlink arguments for live archive / live streams can be modified. See the Twitch page in Streamlink's documentation for specific arguments.

Arguments must be comma , separated.

Good

--force-progress,--force,--twitch-low-latency,--twitch-disable-hosting

Bad

--force-progress --force --twitch-low-latency --twitch-disable-hosting

Proxy Settings

The proxy feature can be enabled which proxies the M3U8 playlist through a country that does not have Twitch ADs. This may not work 100% of the time and is dependent on the server to be online, use at your own risk. Two proxy providers are provided by default. When beginning a livestream archive, the proxy providers are checked one at a time until a working one is found. If no working proxy providers are available, the archive will fallback to the normal Twitch stream. Channels can be whitelisted from this feature. If you're a subscriber to a channel (or have Turbo), input your Twitch token and whitelist the channels.

If you would like to host your own proxy, see https://github.com/AlyoshaVasilieva/luminous-ttv

Video Convert FFmpeg Parameters

After the VOD video is downloaded for both a VOD and livestream, optional ffmpeg parameters can be supplied to post process the video. When editing the ffmpeg parameters do not supply the input and output portion of the ffmpeg command, only the "middle" parameters. All parameters must be separated by a space like a normal ffmpeg command.

Example ffmpeg params

Setting a CRF quality parameter.

-c:v libx264 -crf 25 -c:a copy
Notes
  • GPU support is not included (submit a PR if that is something you need).
  • Modifying the ffmpeg params will significantly increase the processing time of a VOD.
  • H265 is not supported by many browsers (at the time of writing). https://caniuse.com/hevc
  • If you care about archiving VODs and preserving quality I would not use any quality altering parameters as the streamer's OBS already destroys the video quality.
  • If you really want to compress the video file I would use AV1 as codec support is growing, do note this will take a significant amount of time using CPU only.

Chat

Chat Render Parameters

Chat render parameters can be altered. Similar to the ffmpeg parameters do not supply any input or output portions, only the arguments. Reference the TwitchDownloaderCLI Docs for all available chat render params.

Notes
  • The only font installed in the container is Inter, the same as Twitch's font.
  • The chat looks best setting the height to your display's height.
  • I suggest downloading the desktop version of TwitchDownloader and fine tuning your parameters there.