Skip to main content

Web UI

The Web UI is embedded in the upbrr binary and uses the same preparation, tracker, configuration, and persistence services as the CLI.

Start it with:

.\upbrr.exe serve

The default address is http://localhost:7480.

First-run setup​

Create the administrator account in the browser, then configure one or more host browse roots in the initial setup screen. Browse roots control which folders the browser can open for release selection and file import.

Use a dedicated account password. Do not expose an unconfigured instance to an untrusted network.

Release workspace​

The left navigation follows the release workflow. Some pages appear or unlock only when their input exists.

The database owns one active input. Tabs in the same session follow its current state, including after reconnecting. Use Close input to release it before another session or CLI process starts work. Selecting another input waits for safe cleanup; an unfinished submission or unknown outcome must be resolved first. See input lifecycle and reuse.

If Legacy workflow recovery appears, choose Recover workflow and check the tracker or torrent client for the interrupted operation. Use Confirmed not completed; allow a fresh exact attempt only after verifying that it did not complete. Recovery does not resubmit anything, and unresolved outcomes keep new inputs blocked.

PagePurpose
InputChoose the source path, trackers, metadata IDs, and preparation options.
Tracker DataReview tracker-derived metadata when available.
Blu-raySelect Blu-ray playlist or candidate data when the source requires it.
Dupe CheckAnswer tracker questions and review search results, rules, and names.
Audio AnalysisGenerate audio PNGs and amplitude statistics text files.
HDR AnalysisGenerate native HDR plots, audio analysis, and optional picture checks.
ScreenshotsGenerate, import, order, and select screenshots.
Disc MenusCapture DVD menus automatically or import disc-menu images.
Upload ImagesPublish selected images through configured hosts.
DescriptionsBuild and inspect tracker-specific rendered descriptions.
UploadPreview payloads, dry run, approve eligible trackers, and submit.

Navigation guards prevent later operations from silently using missing or stale prerequisites. When a page is unavailable, read the notice and return to the required stage.

An explicit remote duplicate-search waiver stays in effect through later workflow stages and after reloading the workflow. Run duplicate checking again without skipping remote searches to replace the waiver with a new assessment. Existing in-client duplicates and readiness requirements remain enforced.

Screenshots requires at least one tracker eligible to continue after duplicate checking. If all trackers are blocked, return to Dupe Checking and resolve the displayed prerequisite or acknowledge an available policy review. The accepted server response updates navigation for the same workflow; independently eligible trackers can continue while others remain blocked. An acknowledgement does not remove strict restrictions or replace renewed review when evidence changes or expires.

Background workflow updates preserve an unsubmitted Source path, unsaved Descriptions text, and the selected TVDB preview language for the same input. Description drafts are cleared when the active input, prepared generation, or selected trackers change. Render previews the current editor text without saving it. Use Save group to retain the complete edited description, including image order and custom text placement, without adding generated sections again. Reset group replaces that group with its generated description.

On Input, focus Source path to choose a recently used path from this browser, if available. Input history limit controls how many paths the browser keeps; setting it to 0 clears the list.

After a source preview is prepared, open the panel below Edit Release Details to inspect its technical report. Blu-ray discs show BDInfo Preview with the selected playlist summaries; other sources show MediaInfo Preview, where you can expand Raw MediaInfo for the original text. If a report is unavailable, the panel says so. Blu-ray audio languages, including PCM tracks, come from the selected BDInfo summaries when available; missing MediaInfo language tags do not discard that evidence. Manual language corrections, explicit clears and Auto still apply. This preview is separate from Descriptions: tracker descriptions show MediaInfo or BDInfo only when that tracker includes it.

In Edit Release Details, Season and Episode accept plain numbers such as 5; click Refresh metadata to apply them. Generated naming uses canonical forms such as S05E05. Padded and prefixed values remain supported. This does not change automatic filename detection; see naming fields for bounds, specials, clearing, and reset behavior.

Reuse tracker images​

With Settings → Metadata → Collect existing tracker images enabled, preparation can retain validated screenshots from tracker data. Inspect the imported description and images on Tracker Data, then open Screenshots. Available existing description images are included automatically in the retained screenshot list, where you can unselect, delete or reorder them like new captures. Loading these images does not capture additional frames; use Generate screenshots when you want new captures.

Existing description images are marked with unknown capture timestamps and provenance. Their chronological order cannot be inferred, including relative to newly captured screenshots. Review the displayed selection and order before continuing. Compatible existing URLs remain subject to the selected trackers’ image-host policies.

Unselected or deleted screenshots are excluded from the links shown on Upload Images and from generated descriptions. You can select an unselected screenshot again to include it.

Review the final screenshot selection and order before continuing. Existing URLs are reused only when the destination tracker and chosen image host allow them; other images need rehosting. Imported comparison blocks remain part of the description and do not count as ordinary screenshots. See image-host requirements.

Generate audio analysis​

Audio Analysis appears after Input has produced authoritative audio-track facts. Opening the page does not start FFmpeg. Choose the primary track, all tracks, or specific tracks; select waveform, spectrogram, or both; then click Generate.

Each successful graph can be previewed, opened at full size, or downloaded as its original PNG. Statistics can be viewed and downloaded as text. Analysis is optional: leaving the page unopened does not block upload. When descriptions are generated from a completed analysis, upbrr hosts the graphs for each tracker and adds them with the statistics to the default description.

Cancel stops the active analysis. Disable first waits for active work to stop, then hides the result from the current workflow; retained files have no time-based expiry but can be removed when the workflow or source changes. A compatible retry regenerates only missing or failed variants. Results belong to the exact prepared generation, so stale images are not shown after the source facts change.

See Audio analysis for selection, output, and troubleshooting details.

Generate HDR analysis​

HDR Analysis appears when prepared Input contains eligible targets. Opening the page does not start analysis. Select targets and metadata formats, then choose a mode. HDR metadata plots and primary audio is the default; Bounded scene synchronization adds checks around selected scene boundaries, with Analyze audio enabled by default and optional Active-area borders. Picture checks and primary audio offers sampled checks or Measure every video frame (slower). Audio-enabled modes can select Analyze all audio tracks (up to 64).

Click Generate, then inspect each format and picture/audio outcome. Native plots and selected audio images/statistics are included in descriptions by default. Select individual picture-check images to include them. Successful artifacts remain inspectable after partial attempts; a sampled or bounded result does not establish whole-video picture coverage. See HDR analysis for source requirements, comparison sources, retries, and colour-thumbnail interpretation.

Keep a single video in its folder​

Choose Browse folder, select a folder containing one eligible movie or episode video, and fetch its metadata. Under Input → Edit Release Details → Source options, enable Keep source folder, then apply Refresh metadata. The torrent keeps that folder as its root but includes only the selected video, not samples, NFOs, text files, or other sidecars. With the option off, the same input uses a single-file torrent.

The option is not shown for direct file inputs, season packs, multi-video folders, or discs; their existing handling is unchanged.

Correct Input facts​

When saved release fields need review or correction, a warning remains visible above Edit Release Details, even while the editor is collapsed. Use each Review action to open the relevant sections and focus its control, including individual inspected tracks. Detailed guidance stays beside the fields. Apply Refresh metadata or Retry metadata to reevaluate the requirements. Opening the editor or changing a draft does not resolve the warning. A failed preparation keeps unresolved requests visible; successful preparation removes each resolved field independently. Reloading reflects the saved Input state.

In Edit Release Details, the information icons explain each field and grouped actions. Open help by hovering over its icon, focusing it with the keyboard, or tapping it. Escape or an outside interaction closes it; moving into the floating text keeps it readable without moving the form. Opening help does not apply edits.

Use Input to correct provider IDs, genre, release naming fields, and languages before duplicate checking. Title and Original title are read-only; Manual year is editable for movies and for TV when usable TVDB naming data is missing. Available TVDB data controls TV year inclusion and value, even when the result is no year qualifier; Manual year is then read-only and Omit year is unavailable. Destination-specific year rules still apply. Selected trackers share provider lookups where possible. Missing fields identify the affected trackers. Category, Type, Source, and Resolution must be present in the saved prepared metadata before Dupe Check becomes selectable. When any are missing, Input shows a prominent Required facts missing, please edit release details. alert and outlines only the missing controls in red. Correct the highlighted fields under Edit Release Details, then apply Refresh metadata successfully to save each correction and enable Dupe Check. Draft edits do not clear these indicators or unlock the page. A failed refresh leaves the existing indicators in place. Auto is complete only when its saved, derived value is present.

Automatic resolution uses the video's measured dimensions as a minimum known resolution tier, even when the filename specifies a lower tier. Portrait video uses the same tier as its landscape equivalent: 1080×1920 is 1080p, with the original media dimensions preserved. Display and pixel aspect ratios distinguish portrait video from anamorphic landscape video stored with a narrow width. Width-based detection can still retain a higher tier for cropped video: for example, 960×720 progressive video is at least 720p, while a cropped 1920×800 frame can remain 1080p. DCI 2K and 4K widths of 2048 and 4096 pixels map to the 1080p and 2160p families, including cropped frames. An explicit MediaInfo scan type overrides a conflicting filename resolution. If the required tier has no supported label for the measured scan type, automatic resolution stays unknown rather than changing interlaced video to progressive. An explicit Resolution correction still takes precedence; choose Auto to return to detection. Imported screenshots use the same detected or manually corrected resolution for validation.

Category, Type, Source, and Resolution accept only the supported dropdown choices. They have no custom-entry or blank option. If a current value is missing or unsupported, a disabled placeholder keeps it visible without creating a correction; choose a supported value or use Auto. Service, Region, and Distributor (under Metadata and languages) offer searchable suggestions: focus the field or use its browse button to see all choices, then type a partial name or code to filter. Service choices show the full name and acronym, and selecting one stores the recognized acronym. Distributor suggestions come from the supported publisher catalog; selecting one keeps the publisher name so each tracker can resolve its own ID. Region suggestions include the shared country codes. Custom names and explicit numeric tracker IDs remain editable. Use the arrow keys and Enter to select a suggestion, or Escape to dismiss the list. Clearing a searchable field keeps an explicit blank correction; use Auto to restore automatic detection.

Edited fields show a pending change until you apply Refresh metadata. Applied overrides remain marked Manual value · Applied after refresh. Auto clears the local draft and queues removal of the saved correction; the field shows Auto reset pending until refresh derives the automatic value. The previous prepared value may remain visible while that reset is pending.

Use External ID candidates when a provider identity is unresolved, or open Search provider titles to inspect another title. TMDB, IMDb, and TV-only TVDB have separate tabs with posters, credits, runtime, and overviews where available. Missing fields stay unavailable; TVDB's series runtime is labelled as an average per episode. Cast labels distinguish TMDB billing order, IMDb's principal Stars, and TVDB's explicit provider sort order.

Choices marked From metadata resolution remain selectable alongside search results, including after an empty or unavailable search. They may come from earlier title/year fallbacks; matching search results supply the displayed details.

Edit Search query and choose Search providers to submit it; typing alone sends no requests. Include a trailing year to narrow results, for example My Example 2015. Results for continues to identify the submitted query while you edit the draft, and each tab shows the effective provider request and filters. Searches inspect one provider result page, with at most 20 detail requests per provider and four detail requests in flight per provider. Available longer lists remain selectable. Successful complete searches can be reused for five minutes; failed or partial searches remain retryable.

Provider links and poster previews open separately and leave selections and draft edits intact. TMDB cards retain preview-sized posters; their original images load only when you open the lightbox. Click a poster to inspect its full-size provider image; Close or Escape dismisses the preview. Missing or failed posters have no preview button. Selecting a card stages only that provider's ID override. Select it again, or focus its checkbox and press Space, to stage a clear for that provider while keeping other corrections. Choose Refresh metadata to apply selections or clears through the normal correction flow. Searching does not change selected IDs, pending overrides, or the prepared title/year. Recognized series links from a resolved TVDB ID can fill missing sibling provider IDs, including when TVDB is found later during preparation. Explicit IDs and clears retain precedence; conflicting or unusable links leave correction choices available. Older cached TVDB evidence without remote-link fields is checked again rather than treated as proof that no links exist.

Failed TVDB remote-link lookups keep their unavailable status, including after Refresh metadata. Enter missing sibling IDs manually, or remove the input from History before retrying a saved fetch failure. History removal also removes the input's local repeat-submission protection; check previous uploads before submitting again. A newly inferred IMDb link stays advisory when its title type cannot be verified; known episode links are ignored. Manual IDs and kept matches retain their authority.

Use Release version to set PROPER, REPACK, PROPER2, PROPER3, REPACK2, REPACK3, or RERIP independently of Edition. Choose None to remove the detected version, or Auto to restore detection. Leave cut or edition text in Edition. The legacy Suppress edition labels option also suppresses an automatic release version; an explicit Release version selection takes precedence.

Omit alternate title replaces the abbreviated No AKA name. Omit season and episode suppresses both name components. Clear release group and Clear distributor clear the corresponding prepared facts, so they can also affect tracker checks or payloads. The dubbed and dual-audio marker controls change the naming label; they do not identify track languages or soundtrack origins.

Under Source options, Collect existing tracker images and Limit tracker lookup to only metadata ids use the same terminology as Settings and request those options for this preparation. Globally enabled image collection, metadata-ID-only lookup and automatic-client-search skipping still apply when the corresponding preparation box is unchecked. Torrent client to search is the configured client entry name, not a release search phrase; empty uses the default client selection. Skip client search affects discovery during preparation, independently of later injection.

Reset data + refresh forces fresh preparation and renewed downstream review while retaining saved corrections. Ordinary Refresh metadata can reuse compatible results.

Provider IDs are independent manual selections: conflicting provider cross-links do not discard successfully fetched provider cards or block preparation. Apply IDs together or sequentially with Refresh metadata; see manual metadata authority.

Under Provider IDs, each provider has a Keep existing data checkbox. Enable it for correct matches before editing another provider, then apply Refresh metadata. Only the selected providers keep their existing automatic IDs and data; the choices survive reopening the release and restarting the application. Turning Keep off does not remove a manually entered ID. Explicit ID changes and removals still take precedence, and changing Movie/TV can clear incompatible automatic matches. Reset data + refresh reloads data for kept IDs. The CLI equivalent for all providers is --keep-existing-ids.

Corrections survive metadata refresh, history reload, and restart. Explicit values take precedence over saved values and provider results. An empty list, an empty string, a removed provider ID, or explicit No remains a manual value until you choose Auto.

Refresh metadata verifies the source again and applies your corrections, reusing provider lookups for unchanged inputs. It does not repeat lookups that returned no result while the same input remains active. Loading the input again after closing it can retry those empty results; completed fetch failures remain retained until you remove the input from History. A changed source, provider ID, or lookup query requests its own result. Compatible screenshot content, selection, order, and hosted links can be reused when media preparation runs again. Refreshing the same verified input can preserve a still-valid duplicate acknowledgement when the backend verifies unchanged finalized facts and compatible tracker policy. This includes normalized no-op edits and saved corrections that resolve to the same finalized facts. Changed metadata, changed source content, forced fresh preparation, or unavailable or expired evidence requires renewed review. A new prepared generation still rebuilds tracker projections and preflight; staff-token attestations require fresh confirmation when evidence is rebound. The acknowledgement switch reflects the current backend decision; an earlier acknowledgement cannot keep it checked for a result that requires review. Refreshing a successfully completed workflow reopens preparation; confirmed uploads remain excluded from resubmission.

Tracker naming policies can declare mandatory rules for specific name components. Those rules take precedence over manual naming choices for that tracker only; they do not change the saved Input facts. When a rule overrides a choice or replaces a complete manual name, the review shows an explanation beside the effective tracker name. This authority is part of the tracker implementation, not a user setting.

A complete manual name has no reliable component boundaries. If a mandatory rule cannot safely apply to it, clear the complete-name override and regenerate the automatic name. A tracker policy may explicitly rebuild it instead. Confirm the effective name shown in review: submitting an edit that would be changed by enforcement does not confirm the unseen replacement.

The Edition field shows the detected cut and edition, or just 2in1 for a two-edition set. Editing it preserves independent Presentation and Release features. Presentation supports IMAX, Open Matte, or both; open the Release features dropdown to select multiple features, such as Hybrid and 4K Restoration. None clears that control; Auto restores detection. Apply Refresh metadata to save the change. Suppress edition labels suppresses automatic edition-related labels; explicit presentation/features selections take precedence.

Recognized compounds such as Director's Cut / Hybrid split into the cut and independent feature. Every slash-separated fragment must be recognized; custom wording remains intact. Presentation/features appear immediately after Edition, or in its position when Edition is absent, subject to each tracker's naming policy. Complete manual names retain their existing authority. Feature annotations do not change measured media facts.

The 3D control offers Auto, Yes and No. Auto restores detected evidence without turning a subtype annotation into a measured 3D fact; Yes establishes effective 3D. Both preserve detected or manually selected stereoscopic subtype annotations even with Suppress edition labels enabled. An explicit Release features selection, including None, still takes precedence. No clears 3D without changing Edition or release version. No also suppresses effective stereoscopic subtype annotations while preserving saved feature selections for Auto. Recognized subtype annotations contribute only one literal 3D marker in the dedicated naming position, immediately before Source rather than beside Edition. Generated names never include Full/Half SBS or OU wording; the underlying subtype facts remain available for tracker payloads. Explicit complete upload-name overrides remain unchanged.

A solitary Theatrical cut or edition is ignored; compound editions retain it. Review the effective selections and supporting evidence alongside the payload preview. See editions and commentary for manual corrections.

Where Manual year is editable, clearing it saves an explicit zero. Choose Auto to restore the derived year. TV year fallbacks are superseded when usable TVDB naming data becomes available; prepare again after a provider change.

Audio languages, Subtitle languages, and Hardcoded subtitle languages show a compact comma-separated summary. Open a dropdown to browse or search its language choices and select or deselect the checkboxes. Custom saved names remain selectable; to add a new custom name, enter it in the search box and choose Add. Clear selections keeps an explicit empty correction, while Auto restores automatic detection. Use Tab to move between the search, actions, and checkboxes, Space to toggle a checkbox, and Escape to close the dropdown. Hardcoded English choices distinguish English (Full) from English (Forced). Individual track edits apply only to the selected inspected track. Release-level language lists affect the aggregate without assigning languages to each track. Uninspected collection members remain marked as incomplete coverage.

Changing Movie/TV with the same TMDB ID loads metadata from the correct category. If the source or provider identity changes, saved content corrections may require confirmation, replacement, or reset. A changed track manifest requires selecting a current track again.

Input preparation stops after facts and local readiness. It does not run duplicate searches or later media operations. Generated descriptions later include manually supplied languages. User-supplied descriptions pass through each tracker's normal formatting. Selected screenshots still appear in the tracker's usual location, including separate screenshot fields where applicable.

Clear a metadata provider​

On Input, open Edit Release Details and find Provider IDs. Click Remove beside TMDB, IMDb, TVDB, TVmaze, or MyAnimeList. You can also delete an existing ID from its field.

Click Refresh metadata to apply the change. The provider's ID and metadata are removed from the prepared release, and automatic lookups cannot restore them. Other providers remain available.

If the first fetch fails before a preview appears, Edit Release Details is still available. Remove the failing provider and click Retry metadata.

The clear is saved for this source and survives release reloads. Enter a positive ID and refresh metadata to use that provider again. Check tracker eligibility afterward: trackers that require the cleared provider can remain blocked.

See metadata troubleshooting for CLI examples and recovery guidance.

Multi-disc sources​

On Input, select the parent containing all DVD or BDMV disc folders. BDMV playlist choices are grouped by disc, and preparation cannot continue until every disc has at least one selected playlist. Identical playlist filenames on different discs remain independent choices.

The Screenshots page groups planned frames and generated images by disc and lets you choose the disc used for live preview. Disc Menus groups captured and imported menu images by disc. These groups survive release reloads, and Upload creates one collection-root torrent containing every disc folder.

Settings​

Use Settings to manage:

  • metadata services;
  • tracker defaults, credentials, auth status, and tracker-owned fields;
  • image-host priority and credentials;
  • screenshot and description behavior;
  • torrent creation and client integration;
  • post-upload behavior;
  • config import and export.

Saving settings can remain Pending until current operations finish safely. Wait for activation status before using the change. Recheck tracker auth and run a dry run after changing credentials or upload behavior.

See the Settings reference for every section, field behavior, and verification guidance.

Use Appearance to choose a bundled theme and light or dark mode. The change applies immediately in this browser, including the sign-in screen.

History​

History shows retained releases and lets you reopen their overview. Deleting a release from History removes its stored release state; it does not delete the source media.

Opening a historical input checks its local source before adopting reusable content. Deleting an idle active release closes its input automatically; running work still prevents deletion. Deletion removes associated workflow, effect, reusable-media, and submission records, plus generated files managed by upbrr, even if the original source folder is missing. Local repeat-submission protection is removed with those records. Shared generated files and their directories are kept while another retained release still references them. Remote uploads and source media are unchanged.

Restarting the application leaves the previous idle input closed. Its History and saved corrections remain available when you explicitly reopen it. Unfinished operations are interrupted rather than automatically resumed; completed checkpoints are retained. Before retrying an interrupted upload, check the tracker and torrent client and reconcile any retained uncertain outcome; startup preserves its retry protection. See restart recovery. Reloading a browser tab while the application keeps running restores the current input.

Logging​

Logging shows recent sanitized application logs, a live stream, runtime verbosity, and file-rotation settings.

Logs are designed for safer sharing, but inspect them before posting. Never include configuration exports, cookies, credentials, announce URLs, or private API payloads.

See Logging for persistence, filtering, rotation, and buffer behavior.

Host browser​

On Input, choose Browse file or Browse folder. Roots shows every allowed browse root, even when only one is configured. Search all browse roots finds matching names in the roots and their nested folders, including the roots themselves. Each result shows its exact path so you can distinguish identically named files or folders.

Inside a folder, Filter this directory searches only the entries already listed there. Both scopes ignore case, treat common separators such as dots, underscores, hyphens, and brackets as spaces, and match query words in any order. For example, Beacon Voyage matches Beacon.Voyage and Beacon_Voyage. A restricted ordered-character match also finds close abbreviations; it does not correct arbitrary typos.

Choose Open to enter a folder or Select to apply that exact path to Input. File browsing continues to show only recognized video files alongside folders. Clear search restores the root listing or removes the current directory filter; opening another folder also clears the search.

Root searches return at most 200 matches and inspect at most 100,000 entries. They check a two-second search budget between filesystem calls; a slow or unavailable filesystem can keep a call blocked longer. If the results are marked incomplete, open a root and browse directly. A narrower query can help with the match limit, but does not reduce how many filenames must be inspected. Unreadable directories can also leave results incomplete.

Searches can use two workers when every browse root is on a recognized local filesystem. Within each worker, separate roots are visited before their subdirectories, so a deep library does not have to finish before another root gets searched. A single large directory can still use up the search budget. If roots overlap, each root is traversed in order to preserve its access boundary. If any root is on network storage or a filesystem cannot be identified, the search uses one worker. Filesystem identities do not guarantee separate physical disks. When a search reaches a limit, repeated searches may return different subsets of matching paths.

Typing another query, navigating, or closing the browser cancels the previous request, and late replies cannot replace newer results. Each browser request has a 15-second timeout that includes network time and any authentication refresh. A timeout or busy message offers Retry; requests are not automatically repeated after network failures. The server allows at most two host-browser operations at once and keeps an operation's slot until its filesystem work actually returns, even after cancellation.

The host browser lists only configured roots unless unrestricted browsing was explicitly enabled. If a valid folder is missing:

  1. verify the upbrr process or container can read it;
  2. verify the path is mounted into the container when using Docker;
  3. stop the server and replace the roots with upbrr auth browse-roots <path>...;
  4. use the path as visible inside the container, not the host-only path.

Imported application config does not change browse roots. The Web UI route accepts only the initial browse policy; later password and browse-policy changes require the local CLI.

Safe first use​

Each Run dry run action performs one assessment after its prerequisites finish. Partial and failed results remain visible for review; correct any reported problems and choose Run dry run again to retry explicitly. Trackers that are ready in a partial report remain available for upload.

Use Dry Run on the Upload page and disable client injection for the first test. Compare every tracker tab with the tracker's current upload form and rules before allowing submission.

Dry Run never submits to a tracker, but it injects the prepared torrent into your configured client unless Skip client injection is enabled. Review any injection failure in the dry-run result before proceeding. The automatic review before a live upload instead waits for successful tracker registration before injecting.

When a dry run requests a preparation decision, answer it to continue that same dry run automatically. Client injection remains pending until preparation is ready; no second Run dry run click is needed. The original skip-client-injection choice remains in effect.

See Upload workflow for stage ownership and review boundaries.