2016-06-11 2 views
2

J'ai un fichier MP3:Écrire/modifier les tags ID3 bruts?

B{ 
    255 251 144 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 73 110 102 111 0 0 0 15 
    0 0 30 161 0 50 3 66 0 3 5 8 10 13 15 18 20 24 26 28 
    31 33 36 38 41 43 47 49 52 54 56 59 61 64 66 69 72 
    75 77 79 82 84 87 89 92 95 98 100 103 105 107 110 
    112 115 118 ~3277535 more~ 
} 

et j'ai quelques métadonnées que je veux y mettre:

H{ 
    { "title" "Superstar (feat. Krewella)" } 
    { "artist" "Pegboard Nerds & NGHTMRE" } 
    { "num" 1 } 
} 

Factor n'a pas de vocabulaire pour écrire des balises ID3 (encore), mais J'ai les données de fichier brutes et certaines données que j'aimerais écrire.

WikipediaWikipedia est pas n'importe quelle aide, et la source mpg123 ne fait pas vraiment d'économies non plus.

Comment puis-je mettre les données de la table de hachage dans l'en-tête ID3v2?

Répondre

2

Nous ne disposons pas encore de support pour l'écriture de tags id3. Mais python a et nous avons le support pour l'emballage des modules Python. Donc, si vous êtes prêt à être pragmatique premier sudo pip install mutagen alors:

USING: kernel python python.syntax sequences ; 
IN: examples.python.mutagen 

PY-QUALIFIED-FROM: mutagen.easyid3 => EasyID3 (name -- obj) ; 
PY-METHODS: mutagen:easyid3:EasyID3 => 
    __setitem__ (self key value --) 
    save (self --) ; 

: <EasyID3> (str -- easyid3) 
    >py mutagen.easyid3:EasyID3 ; 

: setitem (obj key val --) 
    [ >py ] [email protected] __setitem__ ; 

: update-tags (easyid3 assoc --) 
    dupd [ first2 setitem ] with each save ; 

Ensuite, vous pouvez écrire les tags ID3 comme ceci:

[ 
    "/path/to/mp3-file.mp3" <EasyID3> 
    { 
     { "title" "Superstar (feat. Krewella)" } 
     { "artist" "Pegboard Nerds & NGHTMRE" } 
    } update-tags 
] with-destructors 

Bien sûr le faire dans le facteur pur est impossible. Mais vous auriez à étudier les spécifications mp3 et id3v1-2.