Configuration defaults¶
This table is generated from the setting registry in backend/consts.js and the source defaults in backend/config.js. It does not read a running instance's configuration or secrets.
These are defaults for an unconfigured app. Docker Compose overrides database settings, and existing installations retain saved values. Enabling optional impersonation dependencies also changes the default for new configurations. A registered variable with Not set has no value in the source defaults.
See environment variables for startup-only controls, configuration for precedence and restart behavior, and the deployment guides before changing database or authentication settings. Object and array values belong in the UI or JSON file; environment strings are not generally parsed as JSON.
Host¶
JSON section: YtdlMaterial.Host
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_url |
url |
"http://example.com" |
ytdl_port |
port |
"17442" |
ytdl_ssl_cert_path |
ssl_cert_path |
Not set |
ytdl_ssl_key_path |
ssl_key_path |
Not set |
ytdl_reverse_proxy_whitelist |
reverse_proxy_whitelist |
Not set |
Downloader¶
JSON section: YtdlMaterial.Downloader
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_audio_folder_path |
path-audio |
"audio/" |
ytdl_video_folder_path |
path-video |
"video/" |
ytdl_default_file_output |
default_file_output |
"" |
ytdl_replace_invalid_filename_chars |
replace_invalid_filename_chars |
false |
ytdl_invalid_filename_chars |
invalid_filename_chars |
"\/:*?\"<>|" |
ytdl_invalid_filename_replacement |
invalid_filename_replacement |
"_" |
ytdl_use_youtubedl_archive |
use_youtubedl_archive |
false |
ytdl_custom_args |
custom_args |
"" |
ytdl_include_thumbnail |
include_thumbnail |
true |
ytdl_include_metadata |
include_metadata |
true |
ytdl_max_concurrent_downloads |
max_concurrent_downloads |
5 |
ytdl_min_sleep_between_downloads |
min_sleep_between_downloads |
0 |
ytdl_playlist_chunk_size |
playlist_chunk_size |
20 |
ytdl_download_rate_limit |
download_rate_limit |
"" |
ytdl_skip_join_only_videos |
skip_join_only_videos |
false |
ytdl_use_ytdlp_impersonation |
use_ytdlp_impersonation |
false |
ytdl_js_runtimes |
js_runtimes |
"" |
ytdl_transcoding |
transcoding |
false |
Extra¶
JSON section: YtdlMaterial.Extra
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_title_top |
title_top |
"ytdl-material" |
ytdl_file_manager_enabled |
file_manager_enabled |
true |
ytdl_allow_quality_select |
allow_quality_select |
true |
ytdl_warn_on_duplicate |
warn_on_duplicate |
false |
ytdl_download_only_mode |
download_only_mode |
false |
ytdl_force_autoplay |
force_autoplay |
false |
ytdl_enable_downloads_manager |
enable_downloads_manager |
true |
ytdl_allow_playlist_categorization |
allow_playlist_categorization |
true |
ytdl_enable_notifications |
enable_notifications |
true |
ytdl_enable_all_notifications |
enable_all_notifications |
true |
ytdl_allowed_notification_types |
allowed_notification_types |
[] |
ytdl_enable_rss_feed |
enable_rss_feed |
false |
API¶
JSON section: YtdlMaterial.API
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_enable_documentation_api |
enable_documentation_api |
false |
ytdl_use_youtube_api |
use_youtube_API |
false |
ytdl_youtube_api_key |
youtube_API_key |
"" |
ytdl_twitch_auto_download_chat |
twitch_auto_download_chat |
false |
ytdl_use_sponsorblock_api |
use_sponsorblock_API |
false |
ytdl_generate_nfo_files |
generate_NFO_files |
false |
ytdl_use_ntfy_API |
use_ntfy_API |
false |
ytdl_ntfy_topic_url |
ntfy_topic_URL |
"" |
ytdl_use_gotify_API |
use_gotify_API |
false |
ytdl_gotify_server_url |
gotify_server_URL |
"" |
ytdl_gotify_app_token |
gotify_app_token |
"" |
ytdl_use_telegram_API |
use_telegram_API |
false |
ytdl_telegram_bot_token |
telegram_bot_token |
"" |
ytdl_telegram_chat_id |
telegram_chat_id |
"" |
ytdl_telegram_webhook_proxy |
telegram_webhook_proxy |
"" |
ytdl_telegram_webhook_secret |
telegram_webhook_secret |
"" |
ytdl_webhook_url |
webhook_URL |
"" |
ytdl_use_custom_webhook_template |
use_custom_webhook_template |
false |
ytdl_custom_webhook_title_template |
custom_webhook_title_template |
"{{event_name}}" |
ytdl_custom_webhook_body_template |
custom_webhook_body_template |
"{{event_body}}" |
ytdl_discord_webhook_url |
discord_webhook_URL |
"" |
ytdl_slack_webhook_url |
slack_webhook_URL |
"" |
Themes¶
JSON section: YtdlMaterial.Themes
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_default_theme |
default_theme |
"default" |
ytdl_allow_theme_change |
allow_theme_change |
true |
Subscriptions¶
JSON section: YtdlMaterial.Subscriptions
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_allow_subscriptions |
allow_subscriptions |
true |
ytdl_subscriptions_base_path |
subscriptions_base_path |
"subscriptions/" |
ytdl_subscriptions_redownload_fresh_uploads |
redownload_fresh_uploads |
false |
Users¶
JSON section: YtdlMaterial.Users
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_users_base_path |
base_path |
"users/" |
ytdl_allow_registration |
allow_registration |
true |
ytdl_auth_method |
auth_method |
"internal" |
ytdl_ldap_config |
ldap_config |
{"url":"ldap://localhost:389","bindDN":"cn=root","bindCredentials":"secret","searchBase":"ou=people,dc=example,dc=com","searchFilter":"(uid={{username}})"} |
ytdl_oidc_enabled |
oidc.enabled |
false |
ytdl_oidc_issuer_url |
oidc.issuer_url |
"" |
ytdl_oidc_client_id |
oidc.client_id |
"" |
ytdl_oidc_client_secret |
oidc.client_secret |
"" |
ytdl_oidc_redirect_uri |
oidc.redirect_uri |
"" |
ytdl_oidc_scope |
oidc.scope |
"openid profile email" |
ytdl_oidc_auto_register |
oidc.auto_register |
true |
ytdl_oidc_admin_claim |
oidc.admin_claim |
"groups" |
ytdl_oidc_admin_value |
oidc.admin_value |
"admin" |
ytdl_oidc_group_claim |
oidc.group_claim |
"groups" |
ytdl_oidc_allowed_groups |
oidc.allowed_groups |
"" |
ytdl_oidc_username_claim |
oidc.username_claim |
"preferred_username" |
ytdl_oidc_display_name_claim |
oidc.display_name_claim |
"preferred_username" |
Database¶
JSON section: YtdlMaterial.Database
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_use_local_db |
use_local_db |
true |
ytdl_remote_db_type |
remote_db_type |
"" |
ytdl_mongodb_connection_string |
mongodb_connection_string |
"mongodb://127.0.0.1:27017/?compressors=zlib" |
ytdl_postgresdb_connection_string |
postgresdb_connection_string |
"" |
ytdl_redis_connection_string |
redis_connection_string |
"" |
ytdl_db_migrate |
db_migrate |
"" |
Advanced¶
JSON section: YtdlMaterial.Advanced
| Environment variable | JSON field | Source default |
|---|---|---|
ytdl_default_downloader |
default_downloader |
"yt-dlp" |
ytdl_ytdlp_update_channel |
ytdlp_update_channel |
"stable" |
ytdl_use_default_downloading_agent |
use_default_downloading_agent |
true |
ytdl_custom_downloading_agent |
custom_downloading_agent |
"" |
ytdl_multi_user_mode |
multi_user_mode |
false |
ytdl_use_cookies |
use_cookies |
false |
ytdl_jwt_expiration |
jwt_expiration |
86400 |
ytdl_logger_level |
logger_level |
"info" |