I use KRename for renaming multiple files.
Open Source
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
I second krename. Works flawlesly for me.
You can take a look at "sonarr", it's made for managing your tv-shows and it can automatic rename and organize your files, with customizable naming schem.
you can try rename: https://www.man7.org/linux/man-pages/man1/rename.1.html
or
rename 's/expression/replacement/' filename
select range of episodes per season then add season number (eg S01) in replacement string.
then restart numbering for next set of episodes (eg 01 to 12) and add S02. and so on. more tedious than the gui Rename method but doable.
Please don't use spaces in your *nix filenames, that is just bad. To answer your question, use a bash script. Chatgpt can probably even make it for you if you don't know how to write it.
I know but jellyfin suggest to use that type of nomenclature so...
If you want to use spaces in filenames, it's a good reason to write in something other than shell; although modern shells can be made to work with spaces in filenames safely, it's still fiddly.
This can be done natively in Thunar if you happen to use XFCE.
There must be a million utilities to do this (try searching "linux mass rename"), including ones that allow you to rename media files based on their metadata... each works in different ways, so you'll have to look yourself for one that fits you (personally, I like the ones who open a text editor with the file names and you just edit them).
If you use KDE (DK about other environments) and only need a progressive counter, the simplest way is just select the files in dolphin, hit F2 and enter a pattern like "Tv Show Episode S01E##.mp4".
(of course you can also write a script to rename the files, but I guess you wouldn't have asked if you were prepared to do so)
krenamer can do this. It just is a regex front end. You could do it with a shell script too.
That's what i started using :)
I might have messed something up but I think you should be able to take it from here:
function split_season() {
S=$((($1-1)/$2))
E=$(($1-$S*$2))
printf "S%02dE%02d" $(($S+1)) $E
}
EPISODES_PER_SEASON=15
for f in tv.show.*.mp4; do
NUMBER=`echo $f|sed 's/[^[:digit:]]*\([[:digit:]]*\).mp4/\1/'`
#maybe put echo at the beginning of the next line to test before moving?
mv "$f" "Tv Show $(split_season $NUMBER $EPISODES_PER_SEASON).mp4"
done
There are various GUI tools (eg., gprename, krename) but I prefer qmv, a CLI tool from the renameutils package. It opens filenames into a vim (or your default editor) session, with which you can use global regex search/replace commands to rename files.
how can you identify season from the file name?
One approach: Look up what TV show has 291 episodes; land on this Wikipedia page which gives you the season lengths.
good and fun idea ;)
Would the tvnamer utility help?
Why not just do this with a for loop in the terminal? I don’t think you need to over complicate it by downloading another program.
If I was able to do that i would not have asked here lol
If the names don't have any break for seasons, or the name of the episode, I think it's going to take a couple steps. Renaming is easy, but you're adding info that's not in the name. I can only suggest trying something like tvnamer, or search for a similar project.
Dolphin has that ability built in. If you use it, highlight all of the episodes and press f2. Pretty self explanatory from there.