Access metadata of various audio and video file formats using Python – tinytag library
Metadata extraction is a necessary task while making music players or other related applications. The best python library to read music metadata of various audio and video file formats is tinytag. This library allows you to access metadata of various audio and video file formats like mp3, m4a, mp4, flac, wav etc.
The list of attributes you can access the album, album artist, artist, audio_offset, bitrate, comment, composer, disc, disc_total, duration, filesize, genre, sample rate, title, track, track_total, and year. Note that you can only read and not edit the metadata.
Installation:
This module does not come built-in with Python. To install this module type the below command in the terminal.
pip install tinytag
This library supports python 2.7+ and 3.4+ and pypy.
Extraction of metadata
First, import the Tinytag method from the tinytag library. Then, pass the file name to the Tinytag.get() method if it is present in the same directory, if not, pass the full path and assign this to any variable. Now, the attributes can be accessed using the following format: variable_name.attribute_name.
You can check if the file format you are using is supported or not using the method: TinyTag.is_supported(filename) which returns a bool value.
Note: Missing metadata will be shown as None
If you’d like to follow along, the download link for the audio and video file used in this article is given: m4a(audio) and mp4(video).
Example 1(Audio):
Python3
from tinytag import TinyTag
audio = TinyTag.get( "GeeksForGeeks_Audio.m4a" )
print ( "Title:" + audio.title)
print ( "Artist: " + audio.artist)
print ( "Genre:" + audio.genre)
print ( "Year Released: " + audio.year)
print ( "Bitrate:" + str (audio.bitrate) + " kBits/s" )
print ( "Composer: " + audio.composer)
print ( "Filesize: " + str (audio.filesize) + " bytes" )
print ( "AlbumArtist: " + audio.albumartist)
print ( "Duration: " + str (audio.duration) + " seconds" )
print ( "TrackTotal: " + str (audio.track_total))
|
Output:
Title:GeeksForGeeks_Audio
Artist: Neeraj Rana/GFG
Genre:Geek Music
Year Released: 2020
Bitrate:182.72 kBits/s
Composer: GeeksForGeeks Team
Filesize: 63076 bytes
AlbumArtist: Voice Recorder
Duration: 2.7306458333333334 seconds
TrackTotal: None
Example 2(Video):
Python3
from tinytag import TinyTag
video = TinyTag.get( "GeeksForGeeks_Video.mp4" )
print ( "Title:" + video.title)
print ( "Artist: " + video.artist)
print ( "Genre:" + video.genre)
print ( "Year Released: " + video.year)
print ( "Bitrate:" + str (video.bitrate) + " kBits/s" )
print ( "Composer: " + video.composer)
print ( "Filesize: " + str (video.filesize) + " bytes" )
print ( "AlbumArtist: " + str (video.albumartist))
print ( "Duration: " + str (video.duration) + " seconds" )
print ( "TrackTotal: " + str (video.track_total))
|
Output:
Title:GeeksForGeeks_Video
Artist: Neeraj Rana/GFG
Genre:Geek Video
Year Released: 2020
Bitrate:294651.393 kBits/s
Composer: GFG Video Team
Filesize: 511940 bytes
AlbumArtist: None
Duration: 1.8239333333333334 seconds
TrackTotal: None
If you come across any TypeError, you can use typecasting.
Last Updated :
12 Nov, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...