@if (addInProgress && cancelRequested) { } @else if (addInProgress) { } @else { }
Quality
Format
Auto Start
Download Folder @if (customDirs$ | async; as customDirs) { }
Custom Name Prefix
Items Limit
@if (format === 'captions') {
Subtitles
@if (subtitleFormat === 'txt') {
TXT is generated from SRT by stripping timestamps and cue numbers.
}
Language @for (lang of subtitleLanguages; track lang.id) { }
Subtitle Source
}
@if (splitByChapters) {
Template
}

Cookies
@if (hasCookies) { }
Bulk Actions
@if (downloads.loading) { }
Downloading
@for (download of downloads.queue | keyvalue: asIsOrder; track download.value.id) { }
Video Speed ETA
{{ download.value.title }}
{{ download.value.speed | speed }} {{ download.value.eta | eta }}
@if (download.value.status === 'pending') { }
Completed
@for (entry of cachedSortedDone; track entry[1].id) { @if (entry[1].chapter_files && entry[1].chapter_files.length > 0) { @for (chapterFile of entry[1].chapter_files; track chapterFile.filename) { } } }
Video File Size Downloaded
@if (entry[1].status === 'finished') { } @if (entry[1].status === 'error') { }
@if (!!entry[1].filename) { {{ entry[1].title }} } @else { {{entry[1].title}} @if (entry[1].status === 'error' && !isErrorExpanded(entry[0])) { Click for details } } @if (entry[1].status === 'error' && isErrorExpanded(entry[0])) {
@if (entry[1].msg) {
Message: {{entry[1].msg}}
} @if (entry[1].error) {
Error: {{entry[1].error}}
}
URL: {{entry[1].url}}
}
@if (entry[1].size) { {{ entry[1].size | fileSize }} } @if (entry[1].timestamp) { {{ entry[1].timestamp / 1000000 | date:'yyyy-MM-dd HH:mm' }} }
@if (entry[1].status === 'error') { } @if (entry[1].filename) { }
@if (chapterFile.size) { {{ chapterFile.size | fileSize }} }