Skript zum automatischen verschieben und einordnen von TV-Aufnahmen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

iceman5

Benutzer
Registriert
24. Aug. 2013
Beiträge
3
Reaktionspunkte
0
Punkte
1
Hallo zusammen,

nachdem ich hier im Forum schon x-Mal "passive" Hilfe erhalten habe, ersuch ich nun mal um "aktive" Hilfe. :-)

Ich habe vollgendes Anliegen:
Ich bin im Wohnzimmer vor kurzem von einem Windows Media PC (HTPC) wieder auf einen Receiver umgestiegen (Vu+). Mit dem HTPC haben die Aufnahmen und das darauffolgende verschieben und - bei Serien - das Einordnen wunderbar geklappt. Plex aktualisiert dann nachts seine Datenbank und am nächsten Tag sind alle Infos im Plex.
Seit dem Umstieg auf den Linux Receiver haperts da aber etwas...

Aktueller Stand:
Der Receiver hat einige Shares (NFS) von meiner RS812+ als Festplatte gemountet. Unter anderem auch das Share "TV-Aufzeichnungen". Die Aufzeichnung in dieses Share funktioniert. Die Daten werden da drin vom Receiver allerdings im Format " Aufzeichnungsdatum Startzeit - Sender - Serie - SXXEXX - Titel.xxx " abgelegt. Ich möchte nun einerseits den führenden Teil des Dateinamens (Datum, Zeit und Sender) entfernen, und die Files dann in eine Ordnerstruktur im Sinne von NAS/Serien/SerienName/StaffelXX/ automatisch verschieben lassen. Die Aufgabe wollte ich einem Script umhängen. Und damit hab ich als Windows-versäuchter User so meine Problemchen.

Ein Grundkonstrukt des Skripts habe ich schon. Allerdings, wenn dies die erforderlichen Verzeichnisse erstellt, dann wirds "kreativ". Da werden abgesehen von den erwarteten Verzeichnisse noch einige mehr erzeugt - warum auch immer.

Vielleicht könnte ja einer der "ash Spezialisten" mal kurz einen Blick drauf werfen und mir ein paar gute Tips geben, war gestern irgendwie eine lange Nacht und komm mir noch immer vor wie die Kuh vor'n neuen Tor! :-)

Hier mal mein Script:

Rich (BBCode):
clear
	pfadAufnahmen=/volume1/public/TV-Test
	pfadSerien=/volume1/public/TV-Test/Serien
#cd $pfadAufnahmen
find "$pfadAufnahmen" -type f -regex ".*/*S[0-9][0-9]E[0-9][0-9]*.*" | while read FILE
	do 
		#Serienname komplett auslesen
		DateiName=${FILE#"./"}
		#Serienname auslesen
		Serie=`echo $FILE | awk -v FS="- " '{print $3}'`
		Serie=${Serie#"./"} 
		
		#Staffel Nummer auslesen
		#Staffel=`echo $FILE | awk -v FS="-" '{print $4}'`  '.*{S}[0-9][0-9]{E}[0-9][0-9].*
		Staffel=`echo $FILE | grep -o '[Ss][0-9][0-9][Ee][0-9][0-9]'`
		echo Staffel ist $Staffel
		StaffelNr=${Staffel:1:2}
		
		#Titel auslesen
		Titel=`echo $FILE | awk -v FS="- " '{print $5}'`
		echo "$DateiName"
		echo "$Serie"
		echo "$Titel"
		echo "$StaffelNr"
		echo +++++++
		
		DestPath="$pfadSerien/$Serie/$Staffel/"
		if [ ! -d "$DestPath" ]; then
			mkdir -p "$DestPath"
			# Control treten hier $-Verzeichnis existiert nicht
		fi
		cd $pfadAufnahmen
		mv "$FILE" "$DestPath"
	done

Für hilfreiche Tips wäre ich echt dankbar, vielleicht gibts da ja doch auch schon was fertiges was ich einfach nicht gefunden habe... :-)

Viele Grüße und schon mal Danke im Vorhinein

Günther
 
Da werden abgesehen von den erwarteten Verzeichnisse noch einige mehr erzeugt - warum auch immer.
Da deine Schleife nur einen mkdir-Befehl enthält können maximal nur so viele Verzeichnisse entstehen, wie der find-Befehl findet.
Also gilt es erstmal den find-Befehl zu isolieren und die Ausgabe zu prüfen, ob da was dabei ist, das nicht dazugehört.
Ist es Absicht, dass find auch das Unterverzeichnis Serien durchsucht? - wohl nicht
 
Hallo & Danke für die Antwort!

Also, stimmt, ich vermute da waren schon einige Verzeichnisse vorhanden und in Kombination mit der Durchsuchung der Unterverzeichnisse wirds wohl zu den dubiosen zusätzlichen Ordnern gekommen sein. --> Also nein, find sollte die Unterverzeichnisse nicht durchsuchen... :-)

Aber jetzt ergibt sich noch ein anderes Problem: Mit find finde ich alle Dateien die dem Suchmuster entsprechen (S01E02), mit grep -o kann ich genau diesen Teil herausschreiben. Aber wie erkenne ich, an welcher Stelle dieser Teilstring beginnt? Mir ist nämlich gerade aufgefallen, das das Benennungsformat doch etwas anders ist:

20130823 1658 - 13th Street - Navy CIS_ L_A_ S02E21 Ein letzter Test.ts

D.h. die Infos die ich rausschneiden möchte sind ab dem zweiten Bindestrich (plus ein Leerzeichen) bis zum Teilstring (S01E01), den Teilstring selber, und dann alles danach....

Gäbe es da einen Tipp mit welchem Befehl ich dies hinbekomm? :-)

Danke für die Hilfe,

Viele Grüße
Günther
 
Anfang: echo `expr "$filename" : '.*-.*-.\(.*\)[Ss][0-9][0-9][Ee][0-9][0-9]'`
Mitte: echo `expr "$filename" : '.*\([Ss][0-9][0-9][Ee][0-9][0-9]\).*'`
Ende: echo `expr "$filename" : '.*[Ss][0-9][0-9][Ee][0-9][0-9]\(.*\)'`
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat