news 2026/6/18 18:11:26

tinytag入门教程:3行Python代码获取歌曲信息(附实例)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
tinytag入门教程:3行Python代码获取歌曲信息(附实例)

tinytag入门教程:3行Python代码获取歌曲信息(附实例)

【免费下载链接】tinytagPython library for reading audio file metadata项目地址: https://gitcode.com/gh_mirrors/ti/tinytag

🎵 想要快速读取音乐文件的元数据信息吗?tinytag 是一个轻量级的 Python 库,专门用于读取音频文件的元数据信息,包括歌曲标题、艺术家、专辑、时长、比特率等关键信息。作为纯 Python 实现且无依赖的音频元数据读取工具,tinytag 提供了简单易用的 API,让您只需几行代码就能获取完整的歌曲信息。

🔍 tinytag 是什么?

tinytag是一个专注于读取音频文件元数据的 Python 库。它支持多种主流音频格式,包括 MP3、M4A、WAV、OGG、FLAC、WMA、AIFF 等。无论您是开发音乐播放器、音乐管理系统,还是需要批量处理音频文件,tinytag 都能为您提供简单高效的解决方案。

核心功能亮点:

  • 📁多格式支持:支持 ID3 v1/v2、MP3、M4A、WAV、OGG、FLAC、WMA、AIFF 等格式
  • 🚀轻量高效:纯 Python 实现,无需外部依赖
  • 🎯统一 API:所有音频格式使用相同的 API 接口
  • 📊丰富信息:可读取标签、图片、音频属性等完整元数据

🚀 快速安装步骤

安装 tinytag 非常简单,只需一行命令:

pip install tinytag

或者如果您想从源码安装:

git clone https://gitcode.com/gh_mirrors/ti/tinytag cd tinytag pip install .

💡 3行代码获取歌曲信息

tinytag 的使用非常简单直观。下面是一个最基本的示例:

from tinytag import TinyTag # 读取音频文件元数据 tag = TinyTag.get('/path/to/your/music.mp3') # 打印歌曲信息 print(f'歌曲: {tag.title}') print(f'艺术家: {tag.artist}') print(f'专辑: {tag.album}') print(f'时长: {tag.duration:.2f}秒')

是的,就是这么简单!只需要 3 行核心代码,您就能获取音频文件的基本信息。

📋 支持的音频格式

tinytag 支持广泛的音频格式,包括:

格式类型支持版本主要用途
MP3/MP2/MP1ID3 v1, v1.1, v2.2, v2.3+最常见的音频格式
M4AAAC / ALACApple 音频格式
WAVE/WAV标准 WAV 格式无损音频
OGGFLAC / Opus / Speex / Vorbis开源音频格式
FLAC无损音频格式高质量音频
WMAWindows Media AudioWindows 媒体格式
AIFF/AIFF-CApple 音频交换格式Mac 音频格式

🎯 常用元数据字段

tinytag 可以读取以下常见的元数据信息:

音频文件属性

  • filesize- 文件大小(字节)
  • duration- 音频时长(秒)
  • bitrate- 比特率(kbps)
  • samplerate- 采样率(Hz)
  • channels- 声道数

音乐元数据

  • title- 歌曲标题
  • artist- 艺术家
  • album- 专辑名称
  • year- 发行年份
  • genre- 音乐流派
  • track- 曲目编号
  • track_total- 总曲目数
  • disc- 光盘编号
  • disc_total- 总光盘数
  • comment- 注释信息

📁 实际应用示例

示例1:批量读取音乐库信息

import os from tinytag import TinyTag def scan_music_library(folder_path): """扫描音乐库并提取元数据""" music_info = [] for root, dirs, files in os.walk(folder_path): for file in files: if file.lower().endswith(('.mp3', '.m4a', '.flac', '.wav')): file_path = os.path.join(root, file) try: tag = TinyTag.get(file_path) music_info.append({ 'file': file, 'title': tag.title or '未知', 'artist': tag.artist or '未知', 'album': tag.album or '未知', 'duration': tag.duration, 'bitrate': tag.bitrate }) except Exception as e: print(f"读取 {file} 失败: {e}") return music_info # 使用示例 music_library = scan_music_library('/path/to/music') print(f"共找到 {len(music_library)} 首歌曲")

示例2:创建音乐播放列表

from tinytag import TinyTag import json def create_playlist_json(music_files): """创建 JSON 格式的播放列表""" playlist = [] for file_path in music_files: try: tag = TinyTag.get(file_path) playlist.append({ 'path': file_path, 'title': tag.title, 'artist': tag.artist, 'album': tag.album, 'duration': tag.duration, 'track': tag.track }) except: continue # 保存为 JSON 文件 with open('playlist.json', 'w', encoding='utf-8') as f: json.dump(playlist, f, ensure_ascii=False, indent=2) return playlist

🔧 高级功能探索

读取专辑封面图片

tinytag 还可以读取音频文件中的专辑封面图片:

from tinytag import TinyTag tag = TinyTag.get('/path/to/music.mp3') # 检查是否有专辑封面 if tag.images and tag.images.any: # 获取第一个图片 image_data = tag.images.any # 保存专辑封面 with open('album_cover.jpg', 'wb') as f: f.write(image_data) print("专辑封面已保存")

命令行工具使用

tinytag 还提供了命令行工具,可以直接在终端中使用:

# 查看单个文件信息 python -m tinytag /path/to/music.mp3 # 查看多个文件信息 python -m tinytag song1.mp3 song2.flac song3.m4a # 查看帮助信息 python -m tinytag --help

⚠️ 注意事项

  1. 只读不写:tinytag 只提供读取功能,不支持修改音频元数据。如果需要修改,建议使用 Mutagen 等其他库。

  2. 错误处理:建议在代码中添加适当的错误处理,以应对损坏或不支持的音频文件。

  3. 性能优化:对于大量文件的批量处理,可以考虑使用多线程或异步处理来提高效率。

📚 深入学习资源

要了解更多 tinytag 的详细功能和高级用法,可以查看以下资源:

  • 核心源码文件:tinytag/tinytag.py - 主要实现文件
  • 测试示例:tinytag/tests/ - 查看测试用例了解各种用法
  • 命令行接口:tinytag/main.py - 命令行工具实现

🎉 总结

tinytag 是一个简单而强大的 Python 音频元数据读取库,特别适合需要快速获取音频文件信息的应用场景。无论是开发音乐播放器、音乐管理工具,还是进行音频文件分析,tinytag 都能为您提供高效便捷的解决方案。

主要优势总结:

  • ✅ 简单易用,3行代码即可开始
  • ✅ 支持多种音频格式
  • ✅ 无外部依赖,纯 Python 实现
  • ✅ 提供丰富的元数据信息
  • ✅ 包含命令行工具,方便脚本使用

现在就开始使用 tinytag,让您的音频文件处理工作变得更加轻松高效吧!🎶

【免费下载链接】tinytagPython library for reading audio file metadata项目地址: https://gitcode.com/gh_mirrors/ti/tinytag

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 18:10:50

B站视频解析API终极方案:快速获取高清视频播放链接完整教程

B站视频解析API终极方案:快速获取高清视频播放链接完整教程 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse 还在为无法直接下载B站视频内容而困扰吗?想要在自己的网站或应用中…

作者头像 李华
网站建设 2026/6/18 18:07:46

Claude Agent SDK 能用国内大模型吗?DeepSeek、Qwen、MiniMax 接入指南

很多开发者上手 Claude Agent SDK 后,第一个问题就是:这个 SDK 只能用 Anthropic 的模型吗?能不能接国内大模型? 毕竟国内场景里,DeepSeek 性价比、Qwen 的中文理解、MiniMax 的多模态能力,都有不可替代的场景。 这篇文章从架构到代码,把接入路径讲清楚。 先给结论 …

作者头像 李华
网站建设 2026/6/18 18:07:44

Claude Agent SDK 开源吗?GitHub 地址、社区资源和生态现状

这个问题问的人特别多——毕竟如果 SDK 不开源,遇到问题只能提工单等回复,对生产环境来说风险不小。 先说结论:Claude Agent SDK 是开源的,但"开源"的范围和你想的可能不太一样。 官方开源仓库清单 1. Claude Agent S…

作者头像 李华
网站建设 2026/6/18 17:55:12

终极指南:3步解决小爱音箱音乐服务的设备识别难题

终极指南:3步解决小爱音箱音乐服务的设备识别难题 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 你是否曾幻想过让小爱音箱播放你喜欢的任何音乐&#…

作者头像 李华
网站建设 2026/6/18 17:53:09

Windows组策略编辑实战:从核心原理到企业级排错指南

1. 项目概述:为什么“编辑组策略”是系统管理的必修课如果你用过Windows电脑,尤其是管理过公司或学校的电脑,那你大概率听说过“组策略”这个词。它听起来有点技术门槛,好像只有网管才会碰,但实际上,无论你…

作者头像 李华
网站建设 2026/6/18 17:47:37

为什么选择Luminaire?5大特性让时间序列异常检测更简单

为什么选择Luminaire?5大特性让时间序列异常检测更简单 【免费下载链接】luminaire Luminaire is a python package that provides ML driven solutions for monitoring time series data. 项目地址: https://gitcode.com/gh_mirrors/lu/luminaire Luminaire…

作者头像 李华