Giter Club home page Giter Club logo

tv-renamer's Introduction

Build Status: Build Status

Features

  • Written safely in the Rust programming language
  • Features both a command-line and GTK3 interface
  • Support for Templates to define custom naming schemes
  • TVDB Support for obtaining episode titles from TheTVDB
  • Automatically infers whether the input directory contains seasons or episodes
  • Only renames videos whose extensions can be found in /etc/mime.types

Installation Instructions

This project is using a Makefile for generating a busybox-style binary, named tv-renamer, which provides two options: cli and gtk. Ensure that you have a modern stable version of Rust installed via rustup. If you are packaging for Debian, ensure that you have cargo deb installed.

make && sudo make install

GTK3 Manual

GTK3 Screenshot

The use of this application should be fairly straightforward. The program uses the /etc/mime.types file to only detect videos in a given directory, and does not make a distinction between what is or is not part of the series, so ensure that the only video files in the directory that you are renaming contains the episodes that you are wanting to rename, and ensure that the episodes are in alphabetical order. The application does not derive the episode number from the episode name, but by their alphabetical order in the directory.

  • Season Name: The name of the TV series to be renamed.

    • This will be automatically inferred from the directory path if no name is set.
  • Season Directory: The location of the base directory where the season folders or episodes are stored.

  • Template: Defines the naming scheme to use when renaming episodes.

  • Season Number and Episode Number: Defines what index to start counting from.

The directory structure for base directories with season folders should be as follows:

Series Title/Specials/{Episodes...}

Series Title/Season 1/{Episodes...}

Series Title/Season 2/{Episodes...}

CLI Manual

If you need help with the usage of the CLI application, this manual page is also included in the program and is invokable with the -h and --help flags. The CLI interface is invoked by executing tv-renamer cli or tv-renamer, followed by your arguments of choice.

CLI Screenshot

NAME:

tv-renamer - rename TV series and movies

DESCRIPTION:

Renames all videos in a directory according to their season and episode. If the given DIRECTORY contains season directories, it will automatically rename episodes in each season. If no DIRECTORY is given, the default path will be the current working directory. It is recommended to use the dry-run option first before committing any changes. If a target file already exists, the command will ask if it is okay to overwrite the file. Please ensure that all of the files in the directory are video files that you want renamed.

OPTIONS:

-d, --dry-run: Runs through all of the files and prints what would happen without doing anything.

-n, --series-name: Sets the name of the series to be renamed. [not optional]

-s, --season-number: Sets the season number to use when renaming a file. [default: 1]

-t, --template: Sets the template that will define the naming scheme. [default: "${Series} ${Season}x${Episode} ${TVDB_Title}"]

-e, --episode-start: Sets the episode number to start counting from. [default: 1]

-p, --pad-length: Sets the number of digits to pad the episode count for. [default: 2]

-v, --verbose: Print the changes that are occurring.

Template Tokens:

  • ${Series}: Name of the TV Series
  • ${Season}: Season of the TV Series
  • ${Episode}: Current Episode Number
  • ${TVDB_Title}: Title of the current episode from TVDB
  • ${TVDB_First_Aired}: The first airing date of the episode from TVDB

EXAMPLE:

When executed inside of a directory with the name of the TV Series

one.mkv two.mkv three.mkv
> tv-renamer -n "series name"
"TV Series 1x01 Episode Title.mkv"
"TV Series 1x02 Episode Title.mkv"
"TV Series 1x03 Episode Title.mkv"

You can define your own naming scheme with --template:

> one.mkv two.mkv three.mkv
> tv-renamer -t "${Series} S${Season}E${Episode} - ${TVDB_Title}"
> "TV Series S1E01 - Episode Title.mkv" "TV Series S1E02 - Episode Title.mkv" "TV Series S1E03 - Episode Title.mkv"

The season name can also be automatically inferred:

"$series/Season1" "$series/Season2"
> tv-renamer "$series" OR cd $series && tv-renamer
"TV Series/Season1/TV Series 1x01.mkv"
"TV Series/Season1/TV Series 1x02.mkv"
...
"TV Series/Season2/TV Series 2x01.mkv"
"TV Series/Season2/TV Series 2x02.mkv"
...

Episode titles can also be pulled from the TVDB and added to the filenames.

> tv-renamer -t "${Series} ${Season}x${Episode} ${TVDB_Title}"
"TV Series/Season1/TV Series 1x01 Episode Title.mkv"

AUTHOR:

Written by Michael Aaron Murphy.

tv-renamer's People

Contributors

glitsj16 avatar mmstick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tv-renamer's Issues

Strip invalid characters from Episode name

Example:

"./Season 2/PUNCH_Psycho_Pass_2_11.mp4" -> "./Season 2/Psycho Pass - 2x11 - What Color?.mp4"

The "?" is a invalid character for file names or folders.

I'm using "Windows Subsystem for Linux".

Windows compatibility?

Hey,

First of all, this is an amazing little tool. Love how easy it is to use (and the UI is fantastic).

Is there any thought to releasing a Windows version? I am not sure if there are any compatibility issues but you can use something like trust to automate the testing/building for the binary releases.

Building on headless box

It would be nice to be able to build and run the CLI version without having to install GUI dependencies.

   Compiling xml-rs v0.3.6
error: failed to run custom build command for `glib-sys v0.3.4`
process didn't exit successfully: `/home/ramblurr/src/tv-renamer-0.3.3/target/release/build/glib-sys-a1c4d3eee579d2bf/build-script-build` (exit code: 1)
--- stderr
`"pkg-config" "--libs" "--cflags" "glib-2.0 >= 2.32"` did not exit successfully: exit code: 1
--- stderr
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.