{% extends "home/base.html" %} {% load static %} {% block content %}

User Configurations

{% csrf_token %}

Color scheme

Current color scheme: {{ config.application.colors }}

Select your preferred color scheme between dark and light mode.
{{ user_form.colors }}

Archive View

Current page size: {{ config.archive.page_size }}

Result of videos showing in archive page
{{ user_form.page_size }}

Application Configurations

{% csrf_token %}

Subscriptions

Current page size: {{ config.subscriptions.channel_size }}

Recent videos for channels and playlist to check when running Rescan subscriptions, max recommended 50.
{{ app_form.subscriptions_channel_size }}

Downloads

Current download limit: {{ config.downloads.limit_count }}

Limit the number of videos getting downloaded on every run. 0 (zero) to deactivate.
{{ app_form.downloads_limit_count }}

Current download speed limit in KB/s: {{ config.downloads.limit_speed }}

Limit download speed. 0 (zero) to deactivate, e.g. 1000 (1MB/s). Speeds are in KB/s. Setting takes effect on new download jobs or application restart.
{{ app_form.downloads_limit_speed }}

Current throttled rate limit in KB/s: {{ config.downloads.throttledratelimit }}

Download will restart if speeds drop below specified amount. 0 (zero) to deactivate, e.g. 100. Speeds are in KB/s.
{{ app_form.downloads_throttledratelimit }}

Current scraping sleep interval: {{ config.downloads.sleep_interval }}

Seconds to sleep between calls to YouTube. Might be necessary to avoid throttling. Recommended 3.
{{ app_form.downloads_sleep_interval }}

Danger Zone: Current auto delete watched videos: {{ config.downloads.autodelete_days }}

Auto delete watched videos after x days, 0 (zero) to deactivate:
{{ app_form.downloads_autodelete_days }}

Download Format

Limit video and audio quality format for yt-dlp.
Currently: {{ config.downloads.format }}

Example configurations:

  • bestvideo[height<=720]+bestaudio/best[height<=720]: best audio and max video height of 720p.
  • bestvideo[height<=1080]+bestaudio/best[height<=1080]: best audio and max video height of 1080p.
  • bestvideo[height<=1080][VCODEC=avc1]+bestaudio[ACODEC=mp4a]/mp4: Max 1080p video height with iOS compatible video and audio codecs.
  • 0: deactivate and download the best quality possible as decided by yt-dlp.
Make sure your custom format gets merged into a single file. Check out the documentation for valid configurations.
{{ app_form.downloads_format }}

Current metadata embed setting: {{ config.downloads.add_metadata }}

Metadata is not embedded into the downloaded files by default.
{{ app_form.downloads_add_metadata }}

Current thumbnail embed setting: {{ config.downloads.add_thumbnail }}

Embed thumbnail into the mediafile.
{{ app_form.downloads_add_thumbnail }}

Subtitles

Subtitles download setting: {{ config.downloads.subtitle }}
Choose which subtitles to download, add comma separated two letter language ISO code,
e.g. en, de

{{ app_form.downloads_subtitle }}

Subtitle source settings: {{ config.downloads.subtitle_source }}

Download only user generated, or also less accurate auto generated subtitles.
{{ app_form.downloads_subtitle_source }}

Index and make subtitles searchable: {{ config.downloads.subtitle_index }}

Store subtitle lines in Elasticsearch. Not recommended for low-end hardware.
{{ app_form.downloads_subtitle_index }}

Cookie

Import YouTube cookie: {{ config.downloads.cookie_import }}

For automatic cookie import use Tube Archivist Companion browser extension.

For manual cookie import, place your cookie file named cookies.google.txt in cache/import before enabling. Instructions in the Wiki.
{{ app_form.downloads_cookie_import }}
{% if config.downloads.cookie_import %}
{% endif %}

Integrations

API token:

{{ api_token }}

Integrate with returnyoutubedislike.com to get dislikes and average ratings back: {{ config.downloads.integrate_ryd }}

Before activating that, make sure you have a scraping sleep interval of at least 3 secs set to avoid ratelimiting issues.
{{ app_form.downloads_integrate_ryd }}

Integrate with SponsorBlock to get sponsored timestamps: {{ config.downloads.integrate_sponsorblock }}

Before activating that, make sure you have a scraping sleep interval of at least 3 secs set to avoid ratelimiting issues.
{{ app_form.downloads_integrate_sponsorblock }}

Current Cast integration: {{ config.application.enable_cast }}

Enabling Cast will load an additional JS library from Google. HTTPS and a supported browser are required for this integration.
{{ app_form.application_enable_cast }}

Scheduler Setup

Schedule settings expect a cron like format, where the first value is minute, second is hour and third is day of the week.

Examples:

  • 0 15 *: Run task every day at 15:00 in the afternoon.
  • 30 8 */2: Run task every second day of the week (Sun, Tue, Thu, Sat) at 08:30 in the morning.
  • auto: Sensible default.
  • 0: (zero), deactivate that task.

Note:

  • Changes in the scheduler settings require a container restart to take effect.
  • Avoid an unnecessary frequent schedule to not get blocked by YouTube. For that reason * or wildcard for minutes is not supported.
{% csrf_token %}

Rescan Subscriptions

Current rescan schedule: {% if config.scheduler.update_subscribed %} {% for key, value in config.scheduler.update_subscribed.items %} {{ value }} {% endfor %} {% else %} False {% endif %}

Periodically rescan your subscriptions:

{{ scheduler_form.update_subscribed }}

Start download

Current Download schedule: {% if config.scheduler.download_pending %} {% for key, value in config.scheduler.download_pending.items %} {{ value }} {% endfor %} {% else %} False {% endif %}

Automatic video download schedule:

{{ scheduler_form.download_pending }}

Refresh Metadata

Current Metadata refresh schedule: {% if config.scheduler.check_reindex %} {% for key, value in config.scheduler.check_reindex.items %} {{ value }} {% endfor %} {% else %} False {% endif %}

Daily schedule to refresh metadata from YouTube:

{{ scheduler_form.check_reindex }}

Current refresh for metadata older than x days: {{ config.scheduler.check_reindex_days }}

Refresh older than x days, recommended 90:

{{ scheduler_form.check_reindex_days }}

Thumbnail check

Current thumbnail check schedule: {% if config.scheduler.thumbnail_check %} {% for key, value in config.scheduler.thumbnail_check.items %} {{ value }} {% endfor %} {% else %} False {% endif %}

Periodically check and cleanup thumbnails:

{{ scheduler_form.thumbnail_check }}

Index backup

Current index backup schedule: {% if config.scheduler.run_backup %} {% for key, value in config.scheduler.run_backup.items %} {{ value }} {% endfor %} {% else %} False {% endif %}

Automatically backup metadata to a zip file:

{{ scheduler_form.run_backup }}

Current backup files to keep: {{ config.scheduler.run_backup_rotate }}

Max auto backups to keep:

{{ scheduler_form.run_backup_rotate }}

Actions

Delete download queue

Delete your pending or previously ignored videos from your download queue.

Manual media files import.

Add files to the cache/import folder. Make sure to follow the instructions in the Github Wiki.

Embed thumbnails into media file.

Set extracted youtube thumbnail as cover art of the media file.

Backup database

Export your database to a zip file stored at cache/backup.

Restore from backup

Danger Zone: This will replace your existing index with the backup.

Restore from available backup files from cache/backup.

{% if available_backups %}
Timestamp Source Filename
{% for backup in available_backups %}
{{ backup.timestamp }} {{ backup.reason }} {{ backup.filename }}
{% endfor %} {% else %}

No backups found.

{% endif %}

Rescan filesystem

Danger Zone: This will delete the metadata of deleted videos from the filesystem.

Rescan your media folder looking for missing videos and clean up index. More infos on the Github Wiki.

{% if request.user.is_superuser %}

Users

User Management

Access the admin interface for basic user management functionality like adding and deleting users, changing passwords and more.

{% endif %}
{% endblock content %}