@if (addInProgress && cancelRequested) { } @else if (addInProgress) { } @else if (subscribeInProgress) { } @else { }
@if (downloadType === 'video') {
Type
Codec
Format
Quality
} @else if (downloadType === 'audio') {
Type
Format
Quality
} @else if (downloadType === 'captions') {
Type
Format
Language @for (lang of subtitleLanguages; track lang.id) { }
Subtitle Source
} @else {
Type
Format
}
Auto Start
Download Folder @if (customDirs$ | async; as customDirs) { }
Custom Name Prefix
Items Limit
Subscription Check (min)
@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 Type Quality Codec / Format File Size Downloaded
@if (entry[1].status === 'finished') { } @if (entry[1].status === 'error') { }
@if (!!entry[1].filename) { {{ entry[1].title }} } @else { @if (entry[1].status === 'error') { } @else { {{entry[1].title}} } } @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}}
}
{{ downloadTypeLabel(entry[1]) }} {{ formatQualityLabel(entry[1]) }} {{ formatCodecLabel(entry[1]) }} @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 }} }
Subscriptions
@if (checkingAllSubscriptions) { } @else { } @if (checkingSelectedSubscriptions) { } @else { }
@for (entry of cachedSubs; track entry[0]) { }
Name URL Interval (min) Last checked Status
{{ entry[1].name }} {{ entry[1].url }} {{ entry[1].check_interval_minutes }} @if (entry[1].last_checked !== null) { {{ entry[1].last_checked! * 1000 | date:'yyyy-MM-dd HH:mm:ss' }} } @else { } @if (entry[1].error) { {{ entry[1].error }} } @else if (entry[1].enabled) { Active } @else { Paused }
@if (isSubscriptionChecking(entry[0])) { } @else { }