Osiris
A tool for renaming films / tv series based on named regex capture groups and Go templates.
Installation
go install git.gryffyn.io/gryffyn/osiris@latest
or
git clone https://git.gryffyn.io/gryffyn/osiris
cd osiris
go build
Usage
Usage:
osiris [OPTIONS] [filename...]
Application Options:
-d, --dryrun don't modify files
-s, --silent don't print file names
--no-color disables colored output
-f, --film uses film output format
-Y, --seriesyear whether series year is output
-S, --scene whether scene info is output
-y, --year= release year override
-t, --title= release title override
-c, --config= config file (default ~/.config/osiris/osiris.yml)
-r, --regex= input regex pattern
-p, --preset= preset input regex
Help Options:
-h, --help Show this help message
the regex argument takes in a regex with specifically-named named capture groups.
name |
Output Template Name |
example |
required |
series |
film |
description |
title |
Title |
(?P<title>\w+) |
✅ |
✅ |
✅ |
title of the series/film |
year |
Year |
(?P<year>\d{4}) |
❌ |
✅ |
✅ |
release year |
ep |
Episode |
(?P<ep>S\d{2}E\d{2}) |
✅ |
✅ |
❌ |
episode number (ex. S01E01) |
eptitle |
EpisodeTitle |
(?P<eptitle>\w+) |
❌ |
✅ |
❌ |
episode title |
scene |
Scene |
(?P<scene>[\w-\.]+) |
❌ |
✅ |
✅ |
scene / release info |
Output Templates
Default
Type |
Template |
Example |
Series |
{{ .Title }}{{if .Options.SeriesYear}} ({{ .Year }}){{end}} - {{ .Episode}}{{if EpisodeTitle}} - {{ .EpisodeTitle}}{{end}}{{if .Options.Scene }} ({{ .Scene }}){{end}} |
Series Title - S01E01 - Episode Title.ext |
Film |
{{ .Title }} ({{ .Year }}){{if .Options.Scene }} ({{ .Scene }}){{end}} |
Film Title (YEAR).ext |
Config File
The configuration file is by default loaded from a file named osiris.yml
(or osiris.yaml
, or osiris.toml
) in the current user's configuration directory (~/.config/osiris
on Linux). The config file location can be overridden with the -c
flag.
Example
See contrib/osiris.example.yml or contrib/osiris.example.toml. Copy one of them to the configuration directory and modify as needed.
Usage Example
$ osiris -d '(?P<title>\w+)\.(?P<ep>S\d{2}E\d{2})\.(?P<eptitle>[\w\.]+)\.(?P<scene>WEB-.+)' Title.S01E01.Episode.Title.WEB-DL.H264.SCENE.mkv
Title.S01E01.Episode.Title.WEB-DL.H264.SCENE.mkv -> Title - S01E01 - Episode Title.mkv