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/MP1 | ID3 v1, v1.1, v2.2, v2.3+ | 最常见的音频格式 |
| M4A | AAC / ALAC | Apple 音频格式 |
| WAVE/WAV | 标准 WAV 格式 | 无损音频 |
| OGG | FLAC / Opus / Speex / Vorbis | 开源音频格式 |
| FLAC | 无损音频格式 | 高质量音频 |
| WMA | Windows Media Audio | Windows 媒体格式 |
| AIFF/AIFF-C | Apple 音频交换格式 | 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⚠️ 注意事项
只读不写:tinytag 只提供读取功能,不支持修改音频元数据。如果需要修改,建议使用 Mutagen 等其他库。
错误处理:建议在代码中添加适当的错误处理,以应对损坏或不支持的音频文件。
性能优化:对于大量文件的批量处理,可以考虑使用多线程或异步处理来提高效率。
📚 深入学习资源
要了解更多 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),仅供参考
