【问题标题】:Write / change raw ID3 tags?编写/更改原始 ID3 标签?
【发布时间】:2016-06-11 14:29:26
【问题描述】:

我有一个 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 标签的词汇表,但我有原始文件数据和一些我想编写的数据。

Wikipedia 没有任何帮助,mpg123 来源也没有真正清除任何东西。

如何将哈希表中的数据放入 ID3v2 标头?

【问题讨论】:

    标签: id3 id3v2 factor-lang


    【解决方案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
    

    当然,在纯 Factor 中做到这一点并非不可能。但是您必须研究 mp3 和 id3v1-2 规范。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2023-04-03
      • 2017-08-24
      • 2012-10-22
      • 2017-02-01
      相关资源
      最近更新 更多