iTunes gesamte Spielzeit einer Bibliothek

Code-Stücke können hier veröffentlicht werden.
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Hallo,

mich hatte vor kurzer zeit mal interessiert, wie lang ich eigentlich schon so Musik gehört habe und hab mir auf die Schnelle ein kleines Script gebastelt, das das erledigt.

Code: Alles auswählen

from xml.etree import ElementTree
import shutil
import os

TEMP_FILE_NAME = 'itunes_temp.xml'

def get_total_play_time(xml_path):
    total_time = 0
    e = ElementTree.parse(xml_path)
    for song in e.findall('dict/dict/dict'):
        infos = song.getchildren()
        song_time = 0
        song_count = 0
        for pos,info in enumerate(infos):
            if info.tag == 'key':
                if info.text == 'Total Time':
                    try:
                        song_time = int(infos[pos+1].text)
                    except ValueError:
                        continue
                elif info.text == 'Play Count':
                    try:
                        song_count = int(infos[pos+1].text)
                    except ValueError:
                        continue
        total_time += song_count * song_time
    return total_time
                    
if __name__ == '__main__':
    shutil.copyfile('iTunes Music Library.xml', TEMP_FILE_NAME)
    time = get_total_play_time(TEMP_FILE_NAME)
    print time / (1000.0 * 60 *60), 'h'
    os.remove(TEMP_FILE_NAME)
Vllt. auch ganz lustig für den ein oder anderen, der auch iTunes verwendet...;) (und sagt jetzt nicht, dass das iTunes von Hause aus kann^^)

MfG
Zuletzt geändert von nemomuk am Samstag 24. Oktober 2009, 11:52, insgesamt 1-mal geändert.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wozu die Überprüfung in Zeile 26/27?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Unsinnig, aber funktioniert auch mit... wie gesagt: auf die Schnelle.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Warum nicht das tempfile-modul nutzen?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Auch damit hast du Recht, ändert aber wie gesagt auch nichts an der Funktionalität und ist ja auch nicht wirklich umständlich - wäre aber mit Sicherheit besser und schöner. Wie gesagt: auf die Schnelle.
lunar

Wieso muss man die Datei überhaupt kopieren?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

lol...

ja ich wollte sichergehen, dass ich die Datei nicht zerstöre, wie gesagt: das war rein aus Spielerei und sollte hier jetzt eigentlich nicht groß diskutiert werden. Wenn es euch nicht gefällt, dann ändert es euch selbst.
Antworten