Написать / изменить необработанные теги ID3?
У меня есть файл MP3:
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~
}
И у меня есть некоторые метаданные, которые я хочу вставить в это:
H{
{ "title" "Superstar (feat. Krewella)" }
{ "artist" "Pegboard Nerds & NGHTMRE" }
{ "num" 1 }
}
У Factor нет словаря для записи тегов ID3 (пока), но у меня есть необработанные данные файла и некоторые данные, которые я хотел бы написать.
Википедия не помогает, и источник mpg123 тоже ничего не проясняет.
Как поместить данные из хеш-таблицы в заголовок ID3v2?
1 ответ
Решение
У нас пока нет поддержки для написания тегов id3. Но у Python есть и у нас есть поддержка для упаковки модулей Python. Так что если вы хотите быть прагматичными в первую очередь sudo pip install mutagen
затем:
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 ] bi@ __setitem__ ;
: update-tags ( easyid3 assoc -- )
dupd [ first2 setitem ] with each save ;
Затем вы можете написать теги ID3, как это:
[
"/path/to/mp3-file.mp3" <EasyID3>
{
{ "title" "Superstar (feat. Krewella)" }
{ "artist" "Pegboard Nerds & NGHTMRE" }
} update-tags
] with-destructors
Конечно, делать это в чистом виде не невозможно. Но вам придется изучить спецификации mp3 и id3v1-2.