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.

ID3v2 Definition

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)

FLAC

Zuletzt geändert: 2023-10-28 11:58:12 +0200 CEST: remove import status