FLAC

Read and write FLAC Vorbis comments and stream information.

Read more about FLAC at http://flac.sourceforge.net.

FLAC supports arbitrary metadata blocks. The two most interesting ones are the FLAC stream information block, and the Vorbis comment block; these are also the only ones Mutagen can currently read.

This module does not handle Ogg FLAC files.

Based off documentation available at http://flac.sourceforge.net/format.html

class mutagen.flac.FLAC(filething)

Bases: FileType

A FLAC audio file.

Parameters:

filething (filething) –

cuesheet

if any or None

Type:

CueSheet

seektable

if any or None

Type:

SeekTable

pictures

list of embedded pictures

Type:

list[Picture]

info
Type:

StreamInfo

tags
Type:

mutagen._vorbis.VCommentDict

static score(filename, fileobj, header_data)

Returns a score for how likely the file can be parsed by this type.

Parameters:
  • filename (fspath) – a file path

  • fileobj (fileobj) – a file object open in rb mode. Position is undefined

  • header (bytes) – data of undefined length, starts with the start of the file.

Returns:

negative if definitely not a matching type, otherwise a score,

the bigger the more certain that the file can be loaded.

Return type:

int

add_tags()

Add a Vorbis comment block to the file.

delete(filething=None)

Remove Vorbis comments from a file.

If no filename is given, the one most recently loaded is used.

add_picture(picture)

Add a new picture to the file.

Parameters:

picture (Picture) –

clear_pictures()

Delete all pictures from the file.

save(filething=None, deleteid3=False, padding=None)

Save metadata blocks to a file.

Parameters:

If no filename is given, the one most recently loaded is used.

class mutagen.flac.StreamInfo

FLAC stream information.

This contains information about the audio data in the FLAC file. Unlike most stream information objects in Mutagen, changes to this one will rewritten to the file when it is saved. Unless you are actually changing the audio stream itself, don’t change any attributes of this block.

min_blocksize

minimum audio block size

Type:

int

max_blocksize

maximum audio block size

Type:

int

sample_rate

audio sample rate in Hz

Type:

int

channels

audio channels (1 for mono, 2 for stereo)

Type:

int

bits_per_sample

bits per sample

Type:

int

total_samples

total samples in file

Type:

int

length

audio length in seconds

Type:

float

bitrate

bitrate in bits per second, as an int

Type:

int

Bases:

mutagen.StreamInfo

pprint()
Returns:

Print stream information

Return type:

text

class mutagen.flac.Picture

Read and write FLAC embed pictures.

type

picture type (same as types for ID3 APIC frames)

Type:

id3.PictureType

mime

MIME type of the picture

Type:

text

desc

picture’s description

Type:

text

width

width in pixels

Type:

int

height

height in pixels

Type:

int

depth

color depth in bits-per-pixel

Type:

int

colors

number of colors for indexed palettes (like GIF), 0 for non-indexed

Type:

int

data

picture data

Type:

bytes

To create a picture from file (in order to add to a FLAC file), instantiate this object without passing anything to the constructor and then set the properties manually:

p = Picture()

with open("Folder.jpg", "rb") as f:
    pic.data = f.read()

pic.type = id3.PictureType.COVER_FRONT
pic.mime = u"image/jpeg"
pic.width = 500
pic.height = 500
pic.depth = 16 # color depth
class mutagen.flac.CueSheet

Read and write FLAC embedded cue sheets.

Number of tracks should be from 1 to 100. There should always be exactly one lead-out track and that track must be the last track in the cue sheet.

media_catalog_number

media catalog number in ASCII, up to 128 characters

Type:

mutagen.text

lead_in_samples

number of lead-in samples

Type:

int

compact_disc

true if the cuesheet corresponds to a compact disc

Type:

bool

tracks

list of CueSheetTrack objects

Type:

list[CueSheetTrack]

lead_out

lead-out as CueSheetTrack or None if lead-out was not found

Type:

CueSheetTrack or None

class mutagen.flac.CueSheetTrack

A track in a cuesheet.

For CD-DA, track_numbers must be 1-99, or 170 for the lead-out. Track_numbers must be unique within a cue sheet. There must be at least one index in every track except the lead-out track which must have none.

track_number

track number

Type:

int

start_offset

track offset in samples from start of FLAC stream

Type:

int

isrc

ISRC code, exactly 12 characters

Type:

mutagen.text

type

0 for audio, 1 for digital data

Type:

int

pre_emphasis

true if the track is recorded with pre-emphasis

Type:

bool

indexes

list of CueSheetTrackIndex objects

Type:

list[CueSheetTrackIndex]

class mutagen.flac.CueSheetTrackIndex(index_number, index_offset)

Index for a track in a cuesheet.

For CD-DA, an index_number of 0 corresponds to the track pre-gap. The first index in a track must have a number of 0 or 1, and subsequently, index_numbers must increase by 1. Index_numbers must be unique within a track. And index_offset must be evenly divisible by 588 samples.

index_number

index point number

Type:

int

index_offset

offset in samples from track start

Type:

int

class mutagen.flac.SeekTable(data)

Read and write FLAC seek tables.

seekpoints

list of SeekPoint objects