Python 脚本:自动从豆瓣获取专辑封面January 23, 2010

iTunes 下的显示专辑封面往往被看作是鸡肋,到不是因为它的功能不好用,而是因为很多时候它都找不到中文歌曲的专辑封面。

http://pic.yupoo.com/feelinglucky/738948bd156f/medium.jpg

于是乎,就利用周末的时间用 Python 写了这样的一个脚本,用于自动从豆瓣找专辑封面并嵌入至 mp3 文件中。使用方法相对简单,下载压缩包以后,命令行

python getCover.py *.mp3 

即可。

这里要说面下

  1. 脚本是 Python 2.x 的版本,3.1 下测试过没法用,Mac 下自带的默认就是 2.x 版本的,懒得转换了。
  2. ID3 的信息必须清楚,因为搜索 豆瓣 上的专辑插图是以此为依据的(当然,你也可以改下源代码)
  3. mp3 的 ID3 标签必须是 id3v2 和 utf-8 编码(详细有关 id3 方面的问题,可以参考这里
  4. 对应的 mp3 文件可写

Windows 下可以用 千千静听 批量转换 mp3 文件的 id3,如果在 Mac 平台下,可以考虑使用 ID3Mod 这个工具。

脚本在 Mac 下测试通过,理论上说 Windows 以及其他平台都可以正常使用。如果在使用过程中碰到问题,欢迎联系我。

最后,感谢 付超群 推荐那么好的库

-- EOF --

已有 28 条评论

  1. 一直在期待类似的工具,终于有了~~内牛.......
    貌似用虾米的封面更好些??手工收集封面的过程中发现虾米的专辑图片分辨率都优于豆瓣的

  2. mic mic

    svn管理的代码export出来比较好吧:)

  3. @mic 已经修正,不好意思忘记了,HOHO

  4. 不知道WINDOWS下怎么用呢?希望有个教程:)

  5. 很实用的工具~

  6. [...]RT @feelinglucky: 淫荡的周末,用 Python 写了个小脚本,从豆瓣抓取专辑插图并嵌入到 mp3 文件中 http://www.gracecode.com/archives/3009/ #[...]

  7. J J

    http://www.douban.com/service/apidoc/reference/subject
    其实豆瓣的API还是很开放的,用DOM处理是不是更好些呢

  8. 其实豆瓣上的封面还不如verycd多……

    在mac下有一个不错的抓取itunes封面的项目:

    http://code.google.com/p/albumartwidget/

    从amazon.com, amazon.co.jp, google images之类的地方抓取封面导入itunes,代码也很好改

  9. 好东西啊。AMD大大,我稍微修改了下:
    http://snipt.org/rgol

  10. sevear sevear

    我做过一个类似的东西,不过是最后生成一个处理过的大图片用来当桌面,可以显示在听、听过

  11. ben ben

    楼主,请问在mac下怎么用啊?

  12. @ben Mac 使用终端进命令行使用
    @小凡 虾米的看起来更好有空再改进下 :^)

  13. 太好了,谢谢分享

  14. ben ben

    我运行了你说的命令行,但是提示的是:
    正在处理: *.mp3 读取文件错误

    怎么办呢

  15. @ben 您的 mp3 文件确认是 id3v2 以及编码是 utf8 的吗?还有记得文件要可写

  16. 兴百放 兴百放

    在Google.cn/music下载的音乐,基本上都带封面,而且还是正版,音质又好,一举两得,哈哈!
    自己写过一个程序,根据专辑ID,批量下载该专辑下的所有音乐,之后才知道查不多都带专辑封面的

  17. 请教一下博主,这个typecho的主题有wp的版本不?叫什么?谢谢!

  18. E.T E.T

    这个可以递归处理制定目录里的所有 mp3 文件~~
    find . -iname "*.mp3" -execdir python getCover.py {} \;

  19. [...]前几天看到 手气不错 写了一个 自动从豆瓣获取专辑封面的python脚本,感觉想法挺好,于是这几天我也利用空闲时间,用c#写了一个同样功能的小软件,希望对大家有用。[...]

  20. 这个不错,谢谢

  21. [...]Python 脚本:自动从豆瓣获取专辑封面 – http://www.gracecode.com/archive…[...]

  22. georgexsh georgexsh

    看起来需要python 2.6吧

  23. [...]事情得从头说起。很久之前,我看到了一篇技术文:Python 脚本:自动从豆瓣获取专辑封面,当场小激动了一下,可以自动从豆瓣获取封面诶,不是一举解决了iTunes找不到封面的烦恼?可是…可是,它不是可执行程序,要是有大牛造福一下普通群众——非技术人员就好了。我也就是那么一想,不料今天照例泡WeiPhone的时候竟发现了这样一个好东东,一个暂命名为GetCover的小软件。根据作者自述,确[...]

  24. konglee konglee

    非技术人员完全看不懂!我也试过用Python搭建过gapp代理,因为有详细教程。这个文章实在是看不懂啊
    能否写的再详细点呢?

  25. genix genix

    完全不懂,程序小白
    请问能不能封装一下,让他变成个EXE全自动处理的程序呢?~~~

    麻烦您了,这几天被MP3封面折腾得快疯了~~~

  26. fan fan

    douban专辑封面图片地址改变了,修改getCover.py第19行如下:

    _doubanConverAddr = 'http://img2.douban.com/lpic/s{0}.jpg'

  27. johnson.hongyi johnson.hongyi

    奇怪的很,我添加了批量处理目录,可怎么测试都无法写到mp3文件里面,很是郁闷.而且豆瓣的封面确实比较少.呵呵

  28. johnson.hongyi johnson.hongyi

    看来是测试问题,拉入itunes一切都有了,只是取图不是按排行榜有时不太准确

Yahoo 统计