# 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.

  property info

    The type of the None singleton.

  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:

      - filething (filething)

      - deleteid3 (bool) – delete id3 tags while at it

      - padding (`mutagen.PaddingFunction`)

    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