Musikbewertung aus Moc heraus
Anforderungen
Die Informationen sollen in den Dateien gespeichert werden (ID3v2 Tag bzw. Vorbiscomment und auch in FLAC irgendwas)
In diesem Fall gehen die Dateien nicht verloren bei Pfadänderungen- Es soll sich in die bestehenden moc Scripte integrieren, um moc treu zu bleiben :)
- Muss funktionieren mit FLAC, OGG Vorbis und MP3
- Die Daten sollen in eine SQLite Datenbank rein …
- und nun das ganze nochmal in Python :)
Jedes mal wenn ein Rating abgerufen oder gesetzt wird, kann man den Pfad vergleichen und bei Differenz den aktuellen Sichern. Somit bleiben auch die Pfade immer aktuell :)
Scheiss auf ID3
Läuft leider nicht wirklich so wie ich mir das vorgestellt hatte; da gibt es wieder mal Inkompatibilitäten zwischen den Zeichensätzen blabla.
Also bin ich letztlich doch wieder beim Ansatz mit MD5-Prüfsummen.
Nachteile
- Man braucht immer die entsprechende Datenbank bzw. in diesem Fall die Datei
- Es funktioniert nur bei mir :P
Vorteile
- Die Dateien an sich bleiben unverändert (besser bei rsync etc.)
- Ob es eine FLAC, OGG oder MP3 Datei ist, spielt keine Rolle :)
- Selbst wenn eine Datei verschoben wird, bleibt ihre MD5-Summe gleich und das Rating bleibt erhalten.
(Da der Pfad zwar eingetragen wird, aber nicht geprüft wird, kann dieser später umgeschrieben werden.)
Möglichkeiten
Der komplette Dateipfad wird zwar beim Erzeugen eines Eintrags in die Datei hineingeschrieben, ist aber für die Funktionsweise nicht erforderlich.
Für Playlistenerstellung ist der Pfad aber wichtig: Anhand der “Datenbank” kann ich mir schnell eine Liste von beliebten Stücken erstellen lassen ab xx Sterne.
Einfacher Code zum Erstellen einer Playlist mit mehr als 3 Sternen (Wert=30+)
sort --key=2 -n musicratings.list ... fehlt noch
Die Datenbank :P
9c9d0123e773fcc77bda8f68eb7bee1f 50 "/home/Music_Unfree/Rest/4Lyn/4Lyn - 4Lyn - 04 - Lyn.mp3"
50cdb1382977d1fffc3ec371ed85651b 50 "/home/Music_Free/Electro/Kino Oko - The Doggy Bag EP - 2009 - FLAC/03 - Kino Oko - Red Rose Flow.flac"
=====Kommentarfeld===== Es ist mir leider nicht möglich ein entsprechendes Tag POPM in eine MP3-Datei zu schreiben. Für MP3 werde ich deshalb das Tag Comment verwenden. Davon kann man wohl mehrere unterbringen.
Felder um die Daten zu speichern
MP3
Es gibt in der ID3v2 Definition das Feld “POPM” Popularity Meter.
- Zum Schreiben des Tags gibt es unter Linux id3v2
https://id3v2.sourceforge.net/
ID3v2 Definition
- https://www.id3.org/d3v2.3.0
- Sehr detailreiche Auflistung aller Tags
https://age.hobba.nl/audio/tag_frame_reference.html
Und hier das Feld POPM
4.18. Popularimeter
The purpose of this frame is to specify how good an audio file is.
Many interesting applications could be found to this frame such as a
playlist that features better audiofiles more often than others or it
could be used to profile a person's taste and find other 'good' files
by comparing people's profiles. The frame is very simple. It contains
the email address to the user, one rating byte and a four byte play
counter, intended to be increased with one for every time the file is
played. The email is a terminated string. The rating is 1-255 where
1 is worst and 255 is best. 0 is unknown. If no personal counter is
wanted it may be omitted. When the counter reaches all one's, one
byte is inserted in front of the counter thus making the counter
eight bits bigger in the same away as the play counter ("PCNT").
There may be more than one "POPM" frame in each tag, but only one
with the same email address.
<Header for 'Popularimeter', ID: "POPM">
Email to user <text string> $00
Rating $xx
Counter $xx xx xx xx (xx ...)
Vorbis (Ogg)
- Zum Schreiben gibt es “vorbiscomment” in den vorbis-tools
https://www.vorbis.com