aaa
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

  1. #1
    nicht verifizierter OTR-Benutzer
    Registriert seit
    Dec 2011
    Beiträge
    4

    Standard Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Hallo Leute,

    Ich bin ein Serienfan und daher nehme ich bei OTR Folgen meiner Lieblingsserien auf, die mir noch abgehen. Leider sind im Dateinamen der Aufnahmen die Episodentitel nicht dabei, weswegen ich mich immer abgemüht habe, die aufgenommene Serie in einem EPG meines Vertrauens nach dem Aufnahmedatum und dem Sendernamen herauszusuchen, und diesen dann von Hand in den Dateinamen getippt zu tippen.
    Letztens entdeckte ich, daß sich das EPG von OTR auch als *.csv Datei herunterladen lässt, und habe "quick and dirty" (ich bin ein dilletantischer Scripter... das geb ich gerne zu) ein Script erstellt, das nach dem Dateinamen der OTR-Aufnahme die entsprechende *.csv Datei von OTR herunterlädt, den Episodentitel daraus extrahiert, und mir automatisch die Episode in eine Struktur umbenennt, die ich bevorzuge:
    <Titel> <Datum>_<Uhrzeit> <Episodenname> <Sender>.<Dateinamenerweiterung>
    Ich lade per Push-FTP auf meine ge-freetz-te FritzBox 7270 herunter... Daher war mir auch wichtig, daß das Script auf der FritzBox als Cron-Job läuft.

    Da das Teil bei mir ganz gute Dienste tut, wollte ich es der Community als Basis für Erweiterungen und Verbesserungen zukommen lassen. Wie gesagt: Es funktioniert ganz gut, könnte aber noch verbessert werden.

    Ach ja: Es wird in $local_dir eine Datei mit Sendernamen angelegt, die gepflegt werden sollte... Da KABEL1 aus dem Dateinamen in der CSV-Datei KABEL 1 heißt, muss man in dieser Datei eintragen, welcher String durch welchen ersetzt werden soll. (getrennt durch ":")
    z.B.: KABEL1:KABEL 1 ersetzt den Sendernamen KABEL1 mit KABEL 1

    ToDo (da bin ich derzeit dran):
    - Dateien überwachen, damit nicht während des Download bereits versucht wird umzubenennen
    - Sonderzeichen im Ziel-Dateinamen mit SED ersetzen oder löschen
    - Ersetzungspattern, um Dateinamenstruktur dynamisch festlegen zu können
    - automatischer cifs-mount und am Ende un-mount meines Video-Servers (der sich nicht schlafen legt, wenn ein remote cifs-volume gemountet ist)

    Ich bin für jede Hilfe und auch Anregung offen...

    Hier also der bisherige (lauffähige ;-) ) Code... Ich hoffe das mit den Code-Tags funktioniert... Wenns mit dem Downloadlink Probleme gibt, dann nehmt bitte das Script aus dem Anhang.
    Bitte nicht vergessen, die Pfade anzupassen!

    ...viel Spaß damit :-)

    Gruß, n3tc0mm

    Code:
    #!/bin/sh
    #########################################################################
    # Version:     0.1                                                      #
    # Autor:       n3tc0mm                                                  #
    #                                                                       #
    # Dieses Script versucht, Dateinamen von OTR-Recordings so umzubenennen #
    # dass der Episodename im Dateinamen auftaucht                          #
    # Der Dateiname ist dann:                                               #
    # <Titel> <Datum>_<Uhrzeit> <Episodentitel> <Sender>                    #
    #                                                                       #
    # Dieses Script ist als Basis für bessere Scripter gedacht.             #
    # Ich habe bestimmt viel Unfug gescriptet... Viele Sachen kann man      #
    # bestimmt besser, schöner und eleganter realisieren, aaaaaber: Es      #
    # funktioniert auf meiner FritzBox als Cronjob und tut, was es soll :-) #
    #                                                                       #
    # - Kann auf einer ge-freetz-ten FritzBox ausgeführt werden.            #
    # - local_dir="" Lokales Verzeichnis, in dem das Script laufen soll     #
    # - download_dir="" Verzeichnis, in dem sich die heruntergeladenen      #
    #    Dateien befinden                                                   #
    # - dest_dir="" Verzeichnis, in das die umbenannten Dateien verschoben  #
    #    oder kopiert werden sollen                                         #
    # - epg_dir="" Verzeichnis, in dem die EPG Daten abgelegt werden sollen #
    # - Bei move_dest="TRUE" wird von Quelle nach Ziel verschoben,          #
    #    ansonsten kopiert                                                  #
    # - Da manche Sender im EPG nicht so heißen wie im Dateinamen, müssen   #
    #    diese Namen ersetzt werden:                                        #
    #    Einzelne Einträge werden durch eine neue Zeile voneinander getrennt#
    #    Sollte die Datei nicht erstellt sein, legt dieses Script diese mit #
    #    einem Eintrag in local_dir an.                                     #
    #########################################################################
    local_dir="/var/media/ftp/uStor01/"
    download_dir="/var/media/ftp/uStor01/Upload/"
    dest_dir="/var/media/ftp/uStor01/Upload/unsortiert/"
    epg_dir="/var/media/ftp/uStor01/EPG/"
    move_dest="TRUE"
    # Falls nötig, wird die Datei zur Ersetzung der Sendernamen erstellt
    if [ -f $local_dir/subst.txt ]; then
     subst=`cat $local_dir/subst.txt`
    else
     echo "# Der vordere Eintrag ist die Sendername im Dateinamen" > $local_dir/subst.txt
     echo "# Der hintere Eintrag ist der Name im EPG" >> $local_dir/subst.txt
     echo "# Einzelne Einträge werden durch eine neue Zeile voneinander getrennt" >> $local_dir/subst.txt
     echo "Datei $local_dir/subst.txt wurde erstellt. Bitte Datei anpassen und Script neu starten"
     exit 0
    fi
    #Liste mit Dateien im Verzeichnis erstellen
    dateiliste=`cd $download_dir ; ls`
    #Das aktuelle Jahr abfragen
    jahr=`date | awk '{print $6}'`
    #Ausführung der Schleife pro gefundener Datei
    for datei in $dateiliste ; do
     
    #Dateinamen zerlegen
     ext=${datei##*.}
     monat=`echo $datei | awk '{FS=".";print $2}'`
     tag=`echo $datei | awk '{FS=".";print $3}' | awk '{FS="_";print $1}'`
     stunde=`echo $datei | awk '{FS=".";print $3}' | awk '{FS="_";print $2}' | awk '{FS="-";print $1}'`
     minute=`echo $datei | awk '{FS=".";print $3}' | awk '{FS="_";print $2}' | awk '{FS="-";print $2}'`
     prog=`echo $datei | awk '{FS=".";print $3}' | awk '{FS="_";print $3}' | tr [:lower:] [:upper:]`
    #Prüfen, ob eine Ersetzung des Sendernamens nötig ist
     prog_subst=`cat $local_dir/subst.txt | grep $prog | wc -l`
    #Wenn ja, dann ersetze alten Sendenamen mit neuem Sendernamen (gelesen aus $local_dir/subst.txt)
     if [ $prog_subst != "0" ]; then
      prog=`echo $subst | grep $prog | awk '{FS=":"; print $2}'`
     fi
    #Prüfe, ob die EPG-Datei des Ausstrahlungstages der geprüften Datei schon heruntergeladen wurde
     epg_vorh=`cd $epg_dir ; ls | grep "epg_"$jahr"_"$monat"_"$tag".csv" | wc -l`
    #Falls noch kein EPG heruntergeladen wurde, dann hole die richtige Datei
     if [ $epg_vorh = 0 ] ; then
      echo "Hole epg_"$jahr"_"$monat"_"$tag".csv"
      cd $epg_dir
      wget "http://www.onlinetvrecorder.com/epg/...at"_"$tag".csv -P "$epg_dir"/epg_"$jahr"_"$monat"_"$tag".csv"
     fi
     
    #Prüfe, ob die EPG-Datei des Ausstrahlungstages jetzt zur Verfügung steht (es kann sein, daß ältere EPGs
    #nicht heruntergeladen werden können
     epg_vorh=`cd $epg_dir ; ls | grep "epg_"$jahr"_"$monat"_"$tag".csv" | wc -l`
    #Wenn eine EPG-Datei zur Verfügung steht, dann mache weiter
     if [ $epg_vorh = 1 ] ; then
    #Suchstring zusammenbasteln
      suchstring=$tag"."$monat"."$jahr" "$stunde":"$minute":00"
    #Die richtige EPG-Datei öffnen und nach der Start-Uhrzeit der Ausstrahlung durchuchen.
    #Danach noch auf das richtige Programm filtern
    #Ich gehe davon aus, daß an einem Tag zu einer Uhrzeit auf einem Programm nur eine Sendung ausgestrahlt werden kann
      suchergebnis=`cat $epg_dir"/epg_"$jahr"_"$monat"_"$tag".csv" | awk -v awkstring="$suchstring" '{FS=";"; if ( $2 == awkstring ) print $0}' | grep "$prog"`
    #Suchergebnis zerlegen  
      titel=`echo $suchergebnis | awk '{FS=";";print $6}'`
      episode=`echo $suchergebnis | awk '{FS=";";print $8}' | awk '{FS=",";print $2}'`
      genre=`echo $suchergebnis | awk '{FS=";";print $8}' | awk '{FS=",";print $1}'`
    #Dateiformat für Ausgabedatei festlegen
      out_datei=`echo "$titel" "$jahr"_"$monat"_"$tag"_"$stunde"_"$minute$episode" "$prog"."$ext`
      in_path=`echo "$download_dir$datei"`
      out_path=`echo "$dest_dir$out_datei`
    
    #Dateien in neue Dateinamen verschieben oder kopieren 
      if [ $move_dest = "TRUE" ]; then
       echo "Verschiebe "$datei" ----> "$out_datei
       mv -v $in_path $out_path
      else
       echo "Kopiere "$datei" ----> "$out_datei
       cp -v $in_path $out_path
      fi  
     else
      echo "EPG-Datei konnte nicht heruntergeladen werden"
     fi 
    done
    Angehängte Dateien Angehängte Dateien

  2. #2
    verifizierter OTR Benutzer Avatar von RocknRolf
    Registriert seit
    Mar 2008
    Beiträge
    194

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Moin,
    zu sed: http://sed.sourceforge.net/sed1line_de.html

    Ich hoffe das hilft dir etwas weiter.[COLOR="Silver"]
    Geändert von RocknRolf (21.12.11 um 22:55 Uhr)

  3. #3
    nicht verifizierter OTR-Benutzer
    Registriert seit
    Dec 2011
    Beiträge
    4

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Ok, dann mal die Version 0.2

    Changes:
    - Der Move und der Copy Befehl funktionieren nun besser
    - Die Ausgaben des Script wurden übersichtlicher gemacht
    - Der Doppelpunkt in manchen Sendungen wird nun entfernt
    ---> Vielen Dank, RocknRolf... Die Liste mit SED Einzeilern kannte ich gar nicht... Trotz Google ;-). Gibts sowas auch für awk?
    - wget gibt nun keine Fehlermeldung mehr aus wenn das EPG nicht heruntergeladen werden kann
    - Wenn eine Datei gerade heruntergeladen wird, dann gibt der mv -Befehl von selbst eine Fehlermeldung aus... Eine Dateiüberwachung ist daher unnötig.

    Das mit den Code-Tags lass ich mal und hänge die Datei gleich mal an...

    Weiß einer, wie ich meine eigenen Beiträge editieren kann?
    Angehängte Dateien Angehängte Dateien

  4. #4
    Moderator im Ruhestand verifizierter OTR Benutzer Avatar von worfroz
    Registriert seit
    Aug 2006
    Ort
    Planet Erde, auch wenn's unklingonisch ist... ;-)
    Beiträge
    11.045

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Zitat Zitat von n3tc0mm Beitrag anzeigen
    Weiß einer, wie ich meine eigenen Beiträge editieren kann?
    Einfach auf die Schaltfläche "Bearbeiten" unter deinem Beitrag klicken, dabei diese Ankündigung berücksichtigen: Forum - Änderung beim Editieren eigener Beiträge.
    Ich habe am 10.03.2015 als Mod das Handtuch geWORFen - der grüne Nick ist also nicht mehr aktuell!
    Unmögliches erledigen wir sofort! Wunder dauern etwas länger...
    if(ahnung == 0) {use SEARCH; use BRAIN; use GOOGLE; } else {make post}

  5. #5
    nicht verifizierter OTR-Benutzer
    Registriert seit
    Dec 2011
    Beiträge
    4

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Hallo Worfroz,

    Vielen Dank für den Hinweis. Ich hätte halt gerne die neuen Versionen des Scripts an den Startbeitrag angehängt, weil man sonst immer ganz nach unten scrollen muß.
    Dann hänge ich neue Versionen halt immer unten an... Geht ja auch.

    Vielen Dank und Gruß, n3tc0mm

  6. #6
    verifizierter OTR Benutzer Avatar von RocknRolf
    Registriert seit
    Mar 2008
    Beiträge
    194

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Moin n3tc0mm;

    meine Erfahrungen gehen auch nicht über den Quick and dirty Bereich hinaus. Gute deutsche anleitungen zu awk hab ich im Netzt leider auch nicht zur Hand.
    Aber ein paar interessante links mit Beispielen zum "lernen" hab ich noch:

    http://www.shell-fu.org/index.php
    http://kris.koehntopp.de/artikel/uni...rogrammierung/
    http://snipt.net/public

    Ich finde da immer mal ne "Anregung"

  7. #7
    verifizierter OTR Benutzer Avatar von RocknRolf
    Registriert seit
    Mar 2008
    Beiträge
    194

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Moin,
    noch ein Einzeiler um das .csv ein bischen anzupassen und zu verkleinern

    cat epg_2011_12_21.csv | cut -d\; -f2,5,6,8 | sed 's/\ /\;/' |sed 's/KABEL\ 1/KABEL1/g' > epg_2011_12_21.neu.csv

    der wirft den unwichtigen Kram aus der Datei und passt auch schon Kabel1 an alle Teile schön mit ";" als Sepaator also sollte es auch keine Probleme geben damit mit awk die Dateinamen zu generieren.

    Gruss Rolf

    Ps: Nur mal so Grösse der Datei

    :~$ ls -l |grep epg
    -rw-r--r-- 1 rolf rolf 1183757 Dez 21 03:03 epg_2011_12_21.csv
    -rw-r--r-- 1 rolf rolf 331486 Dez 22 23:17 epg.neu
    Geändert von RocknRolf (22.12.11 um 22:46 Uhr)

  8. #8
    Moderator im Ruhestand verifizierter OTR Benutzer Avatar von worfroz
    Registriert seit
    Aug 2006
    Ort
    Planet Erde, auch wenn's unklingonisch ist... ;-)
    Beiträge
    11.045

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Zitat Zitat von n3tc0mm Beitrag anzeigen
    Ich hätte halt gerne die neuen Versionen des Scripts an den Startbeitrag angehängt, weil man sonst immer ganz nach unten scrollen muß.
    Wie in dem verlinkten Beitrag erwähnt: Schreibe bei nachträglichen Änderungswünschen einen Mod deiner Wahl an, der dann die gewünschte Änderung vornehmen kann. So macht's z.B. DerTim in diesem Thread auch.
    Ich habe am 10.03.2015 als Mod das Handtuch geWORFen - der grüne Nick ist also nicht mehr aktuell!
    Unmögliches erledigen wir sofort! Wunder dauern etwas länger...
    if(ahnung == 0) {use SEARCH; use BRAIN; use GOOGLE; } else {make post}

  9. #9
    nicht verifizierter OTR-Benutzer
    Registriert seit
    Dec 2011
    Beiträge
    4

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Hallo Leute,

    Nach längerer Zeit hab ich mal wieder ein Bugfix erstellen müssen.
    Seit ein paar Tagen ist im Feld "Text" nicht nur Genre und Episodenname enthalten, sondern auch die Beschreibung.
    Gut ist, daß die Beschreibung durch einen "." von den anderen Einträgen in diesem Feld getrennt wurde.

    Im Anhang die aktuelle Version.

    Installation wie immer: einfach das Script auf "fritz.box\uStor01" kopieren, die Variablen anpassen und loslegen...

    Derzeit bin ich dran Staffel und Episodennummer von "thetvdb.com" abzufragen und dann vorne an den Filmstring anzuhängen. Die Episode sieht dann folgendermaßen aus: z.B.: "SxxExx - Episode"
    Außerdem bin ich dabei das Tool in Windows neu zu programmieren, weil viele doch lieber Knöpfe drücken statt die Kommandozeile zu benutzen ;-)...
    Denke in ca. vier Wochen hab ich eine benutzbare Version.

    Grüße, n3tc0mm
    Angehängte Dateien Angehängte Dateien

  10. #10
    nicht verifizierter OTR-Benutzer
    Registriert seit
    Mar 2012
    Beiträge
    8

    Standard AW: Script zum automatischen umbenennen von Aufnahmen incl. Episodenname

    Hallo!

    Wirklich tolles Projekt! Ich hatte leider gerade keinen Linux Rechner zum testen zur Hand. Aber ich habe mich selbst mal an einer Windows Variante versucht (Mein Gott wie schnell so ein Abend verfliegen kann)

    Meine Version (im absoluten Alphastadium) macht folgendes:


    * Anhand der OTR-üblichen Benennung der Dateien Infos über die Serie und Episode von TheTvDB.com abrufen (nur deutsch)
    * Die Infos zur gesendeten Episode aus dem EPG von OTR auslesen
    * Die Datei umbennen in das anerkannte Schema STAFFELxEPISODE (in kommenden Versionen mehr möglichkeiten)


    Es ist also genau das, was du schon vorgegeben hast, nur auf Windowsseite.

    Bevor mein Code aufgeräumt ist und ich weiter mache, biete ich einfach mal den ersten Test an (angehängt).

    Man wählt also einfach die Datei (mit OTR-typischer Benennung) aus, den Rest erledigt (hoffentlich) das Programm ;-)


    Wer Lust zum Testen hat, darf gerne mal probieren. Freue mich über Feedback!
    Angehängte Dateien Angehängte Dateien
    Geändert von gersilex (13.03.12 um 00:24 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Film-Dateien automatisch umbenennen
    Von n-regen im Forum OTR Tools: Videobearbeitung
    Antworten: 57
    Letzter Beitrag: 27.02.13, 23:19
  2. Linux Shell Script zum automatischen decodieren und schneiden
    Von _chrisu im Forum Decodierung der Aufnahme
    Antworten: 11
    Letzter Beitrag: 09.05.10, 22:21
  3. no script gegen no script?
    Von John Grey im Forum Off Topic
    Antworten: 6
    Letzter Beitrag: 12.07.09, 22:23
  4. Dateinamen umbenennen
    Von Joschi1989 im Forum Juristische Fakultät
    Antworten: 3
    Letzter Beitrag: 14.09.08, 15:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •