2

我有一个 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 标头?

4

1 回答 1

2

我们还不支持编写 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 规范。

于 2016-06-23T13:36:54.107 回答