Skip to content

Add a way to rename existing files after changing the Video Filename Template #831

Description

@Sissing

Summary

Video Filename Template applies only to new downloads. The docs state this twice:

Scope: Global setting. Applies only to NEW downloads; existing files are not renamed.
Note: Only affects new downloads; existing files are not moved.

So changing the template leaves an existing library split across two naming schemes. The only ways out today are to delete and re-download everything, or rename files (and per-video folders) by hand.

Re-downloading is the worse of the two: it re-fetches content already on disk, and it is blocked by --download-archive (config/complete.list) unless that file is also edited manually.

This bites hardest when switching to the Plex TV Series preset, since the Plex setup guide specifically calls out that the naming has to be right before downloading:

This will not rename previously downloaded videos. It is best to set this before you start downloading; otherwise, re-download videos so they pick up the new naming.

Anyone who sets up a library first and discovers the preset afterwards has to choose between a mixed-scheme library and re-downloading everything.

Request

A "Rename existing files to match current template" action, ideally in Settings → Core → File Structure Settings, next to the template field and its live preview, or under Maintenance & Rescan.

It should rename both the video file and its per-video folder, plus the sidecars that share the basename (.nfo, .jpg, -fanart.jpg, -backdrop.jpg, .<lang>.srt).

Why this should be relatively safe to implement

Youtarr already has the pieces:

  1. Every file carries its identity in the name. The [VIDEO_ID] suffix on files and - VIDEO_ID on folders are locked and not user-configurable, so each file on disk can be mapped back to its DB row without guessing from the mutable part of the name.
  2. The DB has the metadata to re-render the template: uploader/channel, title, upload date are all stored.
  3. Renaming is already a supported state. Rescan files on disk exists precisely to reconcile files that were "moved, renamed, or converted outside Youtarr", so the database can already absorb a rename. A built-in rename would be doing the same thing deliberately rather than after the fact.

Suggested behaviour

  • Dry-run preview first, listing old name → new name, in the spirit of the existing live template preview. This is a bulk filesystem mutation, so seeing it before it runs matters.
  • Skip and report anything that would collide, is missing on disk, or where the DB metadata needed by the template is absent, rather than aborting the whole run.
  • Rename sidecars alongside the video so artwork/NFO/subtitles keep matching.
  • Update DB paths in the same pass (or trigger the existing rescan afterwards) so Youtarr does not briefly consider the files missing.
  • Trigger a Plex/media-server refresh at the end, since every path in the library will have changed.
  • Optionally scope it: all videos, or one channel at a time, so it can be tried on a small set first.

Environment

  • Youtarr 1.82.1 (Docker, dialmaster/youtarr:v1.82.1)
  • Plex Media Server 1.43.4, library type TV Shows, agent Personal Media Shows
  • Host: macOS (Docker Desktop)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions