#### Settings

@if (new_config) {
URL URL this app will be accessed from, without the port.
Port The desired port. Default is 17442.
} @if (new_config) {
Multi-user mode
Users base path Base path for users and their downloaded videos.
} @if (new_config) {
Allow subscriptions
Subscriptions base path Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.
Check interval Unit is seconds, only include numbers.
Redownload fresh uploads
} @if (new_config) {
Theme Default Dark
Allow theme change
} @if (new_config) {
Audio folder path Path for audio only downloads. It is relative to YTDL-Material's root folder.
Video folder path Path for video downloads. It is relative to YTDL-Material's root folder.
Default file output Documentation. Path is relative to the above download paths. Don't include extension.
Global custom args Global custom args for downloads on the home page. (Set args for subscriptions for each subscriptions separately!) Args are delimited using two commas like so: ,,
} @if (new_config) {

###### Categories

@if (postsService.categories && postsService.categories.length > 0) {
@for (category of postsService.categories; track category) {
{{category['name']}}
}
}
Allow playlist categorization
} @if (new_config) {
Use youtube-dl archive
Include thumbnail
Include metadata
} @if (new_config) {
Max concurrent downloads Limits the amount of downloads that can be simultaneously downloaded. Use -1 for no limit.
Download rate limit Rate limits your downloads to the specified amount. Ex: 200K
} @if (new_config) {
} @if (new_config) {
Top title
File manager enabled
Downloads manager enabled
Allow quality select
Download only mode
Force autoplay
} @if (new_config) {
Enable Public API
Public API Key View documentation
} @if (new_config) {
Use YouTube API
Youtube API Key Generating a key is easy!
Auto-download Twitch Chat
Use SponsorBlock API
Generate NFO files
} @if (new_config) {

###### RSS Feed

Enable RSS Feed

Be careful enabling this with multi-user mode! User data may be exposed.

See documentation here.

} @if (new_config) {

###### Chrome

Click here to download the official YoutubeDL-Material Chrome extension manually.

You must manually load the extension and modify the extension's settings to set the frontend URL.

###### Firefox

Click here to install the official YoutubeDL-Material Firefox extension right off the Firefox extensions page.

Detailed setup instructions. Not much is required other than changing the extension's settings to set the frontend URL.

###### Bookmarklet

Drag the link below to your bookmarks, and you're good to go! Just navigate to the YouTube video you'd like to download, and click the bookmark.

Generate 'audio only' bookmarklet

YTDL-Bookmarklet

} @if (new_config) {
@if (db_info) {

Database location: {{db_info['using_local_db'] ? 'Local' : 'MongoDB'}}

###### Records per table

@for (table_stats of db_info['stats_by_table'] | keyvalue; track table_stats) { {{table_stats.key}}: {{table_stats.value.records_count}} } MongoDB Connection String Example: mongodb://127.0.0.1:27017/?compressors=zlib
Docker: mongodb://<container name>:27017/?compressors=zlib
@if (testing_connection_string) { }
} @if (!db_info) {
Database information could not be retrieved. Check the server logs for more information.
}
} @if (new_config) {
Documentation
Enable notifications
Enable all notifications
Allowed notification types Download complete Download error Task finished
Webhook URL Place endpoint URL here to integrate with services like Zapier and Automatisch.
Discord Webhook URL See docs here.
Slack Webhook URL See docs here.
Use ntfy API
ntfy topic URL See docs here.
Use gotify API
Gotify server URL See docs here.
Gotify app token See docs here.
Use Telegram API
Telegram bot token Create bot here.
Telegram chat ID How do I get the chat ID?
Telegram webhook proxy Example service
} @if (new_config) {
Select a downloader youtube-dl youtube-dlc yt-dlp Restart required.
Use default downloading agent
Select a download agent aria2c avconv axel curl ffmpeg httpie wget
Log Level Debug Verbose Info Warn Error
Login expiration 1 Hour 1 Day 1 Week 1 Month 1 Year
Allow advanced download
} @if (new_config) {
Use Cookies

##### Test current cookies

Run a metadata-only check against the cookies currently stored on the server.

Test URL
@if (testingCookies) { }
@if (cookiesTestComplete && cookiesTestSuccess !== null) {
@if (cookiesTestSuccess) { Cookies test passed. } @if (cookiesTestSuccess === false) { Cookies test failed. }
} @if (cookiesTestLogs.length > 0) {
Test logs

    {{ cookiesTestLogs.join('\n') }}

}
} @if (new_config) {
} @if (new_config) {
}
Users
@if (postsService.config?.Advanced.multi_user_mode) { @if (new_config) {
Allow user registration
Auth method Internal LDAP @if (new_config['Users']['auth_method'] === 'ldap') {
LDAP URL
Bind DN
Bind Credentials
Search Base
Search Filter
}
} @if (new_config) { } } @if (postsService.config) {
}