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- 比特率kbpssamplerate- 采样率Hzchannels- 声道数音乐元数据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, encodingutf-8) as f: json.dump(playlist, f, ensure_asciiFalse, indent2) 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),仅供参考

相关新闻

使用AI来实现拼夕夕自动化运营脚本

使用AI来实现拼夕夕自动化运营脚本

AI编程是当前最热门的话题之一,指的是大模型来辅助人类进行编程,甚至由AI自动生成代码。这个过程通常被称为AI代码生成或AI辅助编程。 常见的AI编程工具: GitHub Copilot:基于OpenAI的Codex模型,能根据你的注释或代码…

2026/6/18 18:11:59阅读更多 →
打造极简登录界面:SilentSDDM配置文件编写实例与最佳实践

打造极简登录界面:SilentSDDM配置文件编写实例与最佳实践

打造极简登录界面:SilentSDDM配置文件编写实例与最佳实践 【免费下载链接】SilentSDDM A very customizable SDDM theme that actually looks good. 项目地址: https://gitcode.com/gh_mirrors/si/SilentSDDM 想要为你的Linux系统打造一个既美观又高度可定制…

2026/6/18 18:06:57阅读更多 →
Zod验证如何保障C.A.F.E.自动化的稳定性?深入解析项目架构

Zod验证如何保障C.A.F.E.自动化的稳定性?深入解析项目架构

Zod验证如何保障C.A.F.E.自动化的稳定性?深入解析项目架构 【免费下载链接】cafe-hass The "Third Way" for Home Assistant Automations. 项目地址: https://gitcode.com/gh_mirrors/ca/cafe-hass C.A.F.E.作为Home Assistant自动化的"第三条…

2026/6/18 18:06:57阅读更多 →
HsMod:炉石传说终极增强插件,50+功能全面提升游戏体验

HsMod:炉石传说终极增强插件,50+功能全面提升游戏体验

HsMod:炉石传说终极增强插件,50功能全面提升游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是一款基于BepInEx框架开发的炉石传说功能增强插件&#…

2026/6/18 23:29:04阅读更多 →
MPC5200 SPI与I2C模块深度解析:从寄存器配置到多主仲裁实战

MPC5200 SPI与I2C模块深度解析:从寄存器配置到多主仲裁实战

1. 项目概述与核心价值在嵌入式系统开发中,串行通信是连接处理器与各类传感器、存储器、显示屏等外设的“血管”。它不像并行总线那样需要大量引脚,而是通过少数几根线,依靠精确的时序和协议规则来传递数据,这对于追求小型化、低成…

2026/6/18 23:29:04阅读更多 →
终极Sketch设计到代码转换指南:Marketch插件让设计稿自动生成HTML与CSS

终极Sketch设计到代码转换指南:Marketch插件让设计稿自动生成HTML与CSS

终极Sketch设计到代码转换指南:Marketch插件让设计稿自动生成HTML与CSS 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirro…

2026/6/18 23:29:04阅读更多 →
Django毕设选题推荐:基于 Python+Vue 的学习数据可视化自主学习系统的设计与实现 基于 Python+Vue 的学习进度跟踪自主学【附源码、mysql、文档、调试+代码讲解+全bao等】

Django毕设选题推荐:基于 Python+Vue 的学习数据可视化自主学习系统的设计与实现 基于 Python+Vue 的学习进度跟踪自主学【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 23:29:04阅读更多 →
PowerPC核心寄存器解析:CR、FPSCR与XER在程序控制与异常处理中的作用

PowerPC核心寄存器解析:CR、FPSCR与XER在程序控制与异常处理中的作用

1. PowerPC寄存器体系:从硬件视角理解程序执行的核心如果你接触过嵌入式系统开发,尤其是像PowerPC这样的经典RISC架构,那你一定绕不开一个核心话题:处理器寄存器。这不仅仅是几个内存地址的别名,而是CPU与软件之间最直…

2026/6/18 23:29:04阅读更多 →
嵌入式来电显示解析库:从FSK信号到结构化数据的协议转换实践

嵌入式来电显示解析库:从FSK信号到结构化数据的协议转换实践

1. 项目概述与背景在二十多年前,我刚开始接触嵌入式通信设备开发时,处理模拟电话线上的来电显示(Caller ID)功能绝对是个技术活。那时候没有现成的开源库,一切都要从FSK(频移键控)信号的解调开始…

2026/6/18 23:24:03阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →