Linux E X P R E S

Facebook

Přejmenovávejte titulky efektivně

avidemux.png

Mnoho přehrávačů videí hledá stejně pojmenované titulky. Zpříjemněte si proceduru jejich přejmenovávání.


Téměř vždy, když si chci přehrát film, ke kterému jsem stáhl titulky, musím je přejmenovat tak, aby měli stejný název jako film. (Případně titulky ručně přiřadit v přehrávači.) Většinou to dělám takhle:

  1. Zvolím Přejmenovat u souboru s filmem.

  2. Protože je označena část bez přípony, zkopíruji ji.

  3. Zruším nebo potvrdím dialog pro přejmenování.

  4. Zvolím Přejmenovat u souboru s titulky.

  5. Protože je označena část bez přípony, vložím zkopírované jméno.

  6. Potvrdím dialog pro přejmenování.

Samozřejmě, celá procedura je o něco rychlejší s pomocí klávesnice

  1. [F2] při zvoleném souboru s videem

  2. [Ctrl+c]

  3. [Enter]

  4. Šipky pro přesun na soubor s titulky, případně klik myší, pokud jsou soubory „daleko od sebe“.

  5. [F2]

  6. [Ctrl+v]

  7. [Enter]

Dnes jsem si ale řekl dost! Vytvořil jsem skript, který vše udělá za mě. Stačí jej přiřadit jako vlastní akci v Thunaru, nebo jiném správci souborů. Poté označíte oba soubory a z kontextové nabídky zvolíte Přejmenovat titulky.

subrnm

#!/bin/bash
# BSDL Miro Hrončok <miro@hroncok_cz>
# subrnm .avi .srt (or vice versa)

if [ $# -ne 2 ]; then
	#echo "USAGE: subrnm .avi .srt (or vice versa)"
	zenity --error --text "Nebyly vybrány dva soubory"
	exit 1
fi

# Which is which
filename=$(basename "$1")
extension=${filename##*.}

# Video first
if [ "$extension" == "avi" ] || [ "$extension" == "mp4" ] || [ "$extension" == "crdownload" ]; then
	#echo "First file is a video"
	subtitles=$(basename "$2")
	extension=${subtitles##*.}
	if [ "$extension" != "srt" ] && [ "$extension" != "sub" ]; then
		#echo "First file is a video. Second file are not subtitles"
		zenity --error --text "První soubor je videem, ale druhý nejsou titulky"
		exit 1
	fi
	filename=${filename%.*}
	dir=$(dirname "$1")
	mv "$2" "$dir/$filename.$extension"
	exit 0
fi

# Subtitles first
if [ "$extension" == "srt" ] || [ "$extension" == "sub" ]; then
	#echo "First file are subtitles"
	video=$(basename "$2")
	videext=${video##*.}
	if [ "$videext" != "avi" ] && [ "$videext" != "mp4" ] && [ "$videext" != "crdownload" ]; then
		#echo "First file are subtitles. Second file in not a video"
		zenity --error --text "První soubor jsou titulky, ale druhý není videem"
		exit 1
	fi
	video=${video%.*}
	dir=$(dirname "$2")
	mv "$1" "$dir/$video.$extension"
	exit 0
fi

#echo "USAGE: subrnm .avi .srt (or vice versa)"
zenity --error --text "První soubor není videem ani to nejsou titulky"
exit 1

Budete potřebovat balíček zenity. Pokud zenity nechcete používat, skript patřičně upravte (jsou v něm i zakomentovaná echa, pokud ho chcete používat raději v terminálu).

Vlastní akce

Vlastní akce Vlastní akce

Podmínky zobrazení Podmínky zobrazení

Diskuze (1) Nahoru