一些MP3播放器(包括iphone、ipod、itouch、blackberry等)可以在播放mp3的时候显示专辑图片、歌词等信息而不需要额外的图片文件和歌词文件,仅仅一个mp3文件就搞定,比较有意思。除了用专门的软件(比如itunes)来制作这样的mp3,我们还可以用程序来批量生成。

查阅mp3头信息ID3V2的技术文档,发现可以往ID3信息里面加入歌词和图片信息(可以在页面上查找Lyrics、Attached picture就能发现相应的内容)。有了官方格式上的支持,我们要做的就是把歌词和图片加入到MP3文件中去。

测试一些开源的软件包,发现一个比较可靠的:eyeD3,由python语言编写,直接上代码:

以下是代码片段:

#coding=utf-8
import eyeD3     Python学习交流群:1004391443
import re# mp3文件
mp3_file = '/path/to/foobar.mp3'
# lrc歌词文件
lrc_file = '/path/to/foobar.lrc'
# 专辑图片
pic_file = '/path/to/foobar.jpg'# 实例化eyeD3
tag = eyeD3.Tag()# 绑定到mp3文件
tag.link(mp3_file)# 去掉原文件中可能存在的图片
tag.removeImage()# 去掉原文件中可能存在的歌词
tag.removeLyrics()# 设定编码,非常重要,否则不支持中文
tag.encoding = '\x01'# 添加图片
tag.addImage(3, pic_file, u'')# 添加歌词,注意要utf-8编码,去掉lrc中时间信息
tag.addLyrics(re.sub('(\[.*?\][\n]*)+', '', unicode(open(lrc_file, 'r')).read(), 'utf8')))# 更新到文件
tag.update()

代码非常简单,需要注意的是设定编码,不然歌词就乱码了。有了eyeD3之后,可以写个爬虫,从网上抓下歌词和图片直接灌进MP3文件里面,剩下的就是享受了。

Python处理MP3的歌词和图片!相关推荐

  1. python显示图片 播放mp3_Python处理MP3的歌词和图片

    一些MP3播放器(包括iphone.ipod.itouch.blackberry等)可以在播放mp3的时候显示专辑图片.歌词等信息而不需要额外的图片文件和歌词文件,仅仅一个mp3文件就搞定,比较有意思 ...

  2. python解析mp3,获取mp3的元数据

    文章目录 概述 mp3(一种音频编码方式) mp3的Tag 标签说明 TAG_V1(ID3V1) TAG_V2(ID3V2) ID3V2 标签头 ID3V2标签帧 常用标识符表 Flags标志的说明 ...

  3. python实现MP3加封面图片,修改作者,专辑

    python实现MP3加封面图片,修改作者,专辑 需要安装eyed3 #!/usr/bin/env python # encoding: utf-8import eyed3 import imghdr ...

  4. python 获取mp3时长(时间长度)

    python 获取mp3时长(时间长度) 第一种方法 import librosa import time def get_mp3_duration(audio_path):""& ...

  5. KRSReader酷狗音乐歌词写真图片提取工具(提取KRS文件中的图片)

    最近发现酷狗音乐中的歌词写真图片还是比较给力的,很多友友表示喜欢,但是苦于不懂得如何提取,小菜利用周末闲暇时间写了一个小工具,专门用来提取酷狗音乐歌词写真图片. 废话不多说,软件界面如下: 使用说明: ...

  6. python的image读取的图片是什么类型的-python如何实现读取并显示图片(不需要图形界面)...

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1 ...

  7. python爬取图片-Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  8. python绘制动态模拟图-Python 模拟动态产生字母验证码图片功能

    模拟动态产生字母验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image ...

  9. python界面图片-python如何实现读取并显示图片(不需要图形界面)

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

最新文章

  1. FPGA研发之道(25)-管脚
  2. Python内置方法大全
  3. linux 文件的压缩和打包
  4. 2021年第3周推荐系统方向的周报
  5. matlab里有java数据库吗_Matlab通过JDBC建立到Oracle数据库的连接
  6. vCenter 6.7 shell 和 SSH开启
  7. 支付宝支付返回通知时 notify_url和return_url的选择
  8. 代码管理学:如何给新员工安排工作
  9. wireshark读写pcap文件_使用wireshark分析tcpdump出来的pcap文件
  10. 利用Python(pyserial、minimalmodbus、modbus_tk)进行单片机通信
  11. SQL,什么时候用自身连接????
  12. Collections.singleton
  13. vue操作dom元素的三种方法介绍和分析
  14. 如何做好自己的职业规划?
  15. 批处理---findstr命令详解
  16. HDFS集群内文件移动的Java实现
  17. 个人隐私保护法_浅学一下
  18. 摘录--《人间》余秀华
  19. 实现一个C语言版本的圣诞树(附源代码)
  20. 根据一堆数字判定下一个数字_坐在一堆数字黄金

热门文章

  1. python环绕文字_Java 设置 Word 文档中图片文字环绕方式
  2. python3.6 m venv py3_python 3.6 的 venv 模块
  3. Bert-BiLSTM-CRF pytorch 代码解析-3:def _viterbi_decode
  4. 阿里云域名解析到非80端口
  5. 怎么在别人网站注入js脚本_爱奇艺视频网站上被别人上传公司负面信息怎么解决好...
  6. 笔记本html接口是输入还是输出,电脑上的显示输出接口你都认识么
  7. 微信小程序之购物车 —— 微信小程序实战商城系列(5)
  8. wps如何调整字符宽度_WPS文字中当字体字号放大到100时字距变宽如何适当调整字距...
  9. 虚拟机系统 无网络连接网络连接网络连接服务器,Win10虚拟机无法连接网络怎么解决?...
  10. 基于matlab的图像分割与识别