Beta operator guide

Operate a NAS archive without guessing what to click.

This screen-by-screen manual explains how to register a channel, sync metadata, skip videos that already exist on disk, stage only missing videos, run bounded download passes, and verify the local library.

Main path 5 steps

Register, sync, stage, download, verify.

Safety limit 5 jobs/pass

Real downloads require an explicit confirmation modal.

Skip truth Disk first

A DB row is not archived unless the media file exists.

Exposure LAN/VPN

Do not expose alpha builds directly to the public internet.

First 10 minutes: click in this order

You do not need to understand every panel first. Follow these five actions to reach the core workflow: download only videos that are missing from the NAS.

1
Dashboard Check the current channel and readiness score.

Start with the dashboard. Read missing count, queue count, worker state, and storage pressure.

2
Channels Run New video check.

Open the channel detail screen and run metadata sync before staging downloads.

3
Downloads Use Download new only.

The app creates candidates only for videos that are missing on disk.

4
Queue Watch candidate, queued, running, and failed jobs.

Use filters and preflight before starting a real worker pass.

5
Library Verify archived coverage from files on disk.

After download completion, Library and coverage counters should reflect actual media files.

!
Guardrail Disabled download buttons can be correct.

If the worker is off or the channel is paused, candidates may be created while claims stay blocked.

archive.txt mental model: Channel Vault NAS preserves the useful part of youtube-dl --download-archive archive.txt: already downloaded videos are skipped. The difference is that skip decisions, candidates, queue state, and library verification are visible.

Dashboard: read the next action first

The dashboard is an operating cockpit. It summarizes channel coverage, queue pressure, storage pressure, runtime state, and the next useful action.

Dashboard cockpit
What to check Left navigation badges show work that needs attention. The center action cards route you to the next step.
  1. Select the channel in the Current channel switcher.
  2. If New video check is non-zero, run sync first.
  3. If View progress is non-zero, inspect the queue.
  4. If runtime is off, use Settings before expecting real downloads.

Channel detail: one channel, five tabs

Channel detail is split into Overview / Downloads / Library / Logs / Policy. Use Overview for status and Downloads for the actual staging workflow.

Channel overview
Overview tab Review last sync, next sync, missing count, and recent automatic candidate results.
  • New video check refreshes YouTube metadata and source state.
  • Download new only stages missing videos and opens a confirmation modal.
  • View progress opens the queue filtered to the current channel.

Download flow: safe by default

The Downloads tab combines candidate generation, preflight, queue registration, dry-run, and real worker pass controls. Real transfer starts only after an explicit confirmation.

Download launch control
Launch control Check runnable jobs, candidates, queued jobs, selected jobs, and estimated bytes.
Download confirmation modal
Confirmation modal Confirm pass limit, skipped videos, and queued jobs before starting.

When real download is locked

  • Worker is paused: channel policy or maintenance mode blocks claims.
  • Worker off: enable runtime worker settings and complete apply/restart.
  • 0 claimable jobs: there are no staged jobs that the worker can claim.

archive.txt import

Paste an existing archive ledger to classify each line as archived, known missing, unknown, duplicate, or invalid before any download starts.

Queue: inspect what is actually moving

Queue is the global job console. Use it when you need a wider view than the channel-specific download panel.

Queue console
Job states candidate means staged, queued means ready, running means active, failed means review or retry.
  1. Use Runnable to focus on jobs that can move now.
  2. Run Preflight to inspect the yt-dlp command plan.
  3. Use Queue selected to promote candidates.
  4. Use Dry run before a real worker pass.
  5. Start real download only after reviewing the confirmation modal.

Library: verify completed downloads from disk

Library is the source of truth after downloads. It checks actual media files, sidecars, subtitles, thumbnails, codec metadata, queue state, and path integrity.

Library coverage
Completion check Use archived count, missing count, sidecar state, and file path detail to verify the archive.
  • Saved views make repeated checks such as missing subtitles or media-only rows faster.
  • Stale DB rows should appear as missing or indexed-only, not as archived media.
  • Use item detail drawers to inspect files and streamable media endpoints.

Logs and policy: explain automation decisions

Logs show what happened. Policy explains what the app is allowed to do next for a specific channel.

Channel logs
Logs tab Inspect sync, download, library, runtime, skipped, completed, failed, and duration signals.
Channel policy
Policy tab Configure sync interval, automatic candidates, max quality, subtitles, and worker pause behavior.
  • auto_download can create candidates while the paused worker still blocks claims.
  • sync_interval_minutes controls metadata scheduler due-channel selection.
  • Repeated failures should be reviewed from Queue details and Logs before retrying blindly.

Insights: inspect the NAS filesystem

Insights reads the archive root and reports storage pressure, folder structure, unindexed media, indexed-but-missing files, and orphan sidecars.

Insights storage screen
Storage operations Use this screen before disk pressure or sidecar drift becomes a recovery problem.
Storage pressure Folder map Orphan sidecar Indexed missing Quarantine

Settings: runtime and public-access guardrails

Settings is the runtime console for worker flags, scheduler flags, binary paths, restart adapters, auth token setup, backup commands, tick logs, and support bundles.

Runtime settings guide
Runtime env manifest Compare live settings with .env.runtime and follow restart adapter guidance.
  1. Set CVN_AUTH_TOKEN before using anything beyond localhost.
  2. After runtime edits, complete the apply/restart flow.
  3. For Docker Compose, copy or enable the validated restart adapter command.
  4. Use redacted support bundles when reporting issues.

Mobile width: quick checks near the NAS

Narrow screens stack navigation and cards vertically. Desktop is still better for bulk operations, but mobile width is usable for status checks and quick navigation.

Mobile-width dashboard
Read order Top menu badges, current channel, readiness card, and Live status are the first signals.

Common confusing states

Real download disabled The worker is off or the channel is paused.

Enable worker runtime settings and check channel policy or maintenance reason.

No candidates created The videos may already exist on disk or metadata may be stale.

Run New video check first, then verify Library coverage.

DB row but missing file The app should show it as missing/indexed-only.

Coverage and staging decisions trust actual media files under the download root.

archive.txt duplicates Duplicate lines are skipped.

Review duplicate, invalid, unknown, and known-missing rows before staging.

Failed jobs rising Check yt-dlp, network, quality format, and permissions.

Open Queue job details and Logs before retrying repeatedly.

Public-readiness concern Verify token, volumes, backups, and support bundles first.

Use Runtime guide and Deployment Security before exposing the app outside localhost.