taglib-ts
    Preparing search index...

    Class FlacFile

    FLAC file format handler.

    Supports XiphComment (Vorbis Comment), ID3v2 and ID3v1 tags as well as FLAC picture metadata blocks and audio property reading.

    FLAC file structure: [ID3v2] + "fLaC" + metadata blocks + audio frames + [ID3v1]

    Hierarchy (View Summary)

    Index

    Properties

    _stream: IOStream

    The underlying I/O stream.

    _valid: boolean = true

    Whether the file was parsed successfully. Subclasses set this to false when a fatal parse error is encountered.

    Accessors

    • get hasID3v1Tag(): boolean

      Whether an ID3v1 tag was present on disk when the file was opened.

      Returns boolean

      true if an ID3v1 tag was found at the end of the file.

    • get hasID3v2Tag(): boolean

      Whether an ID3v2 tag was present on disk when the file was opened.

      Returns boolean

      true if an ID3v2 tag was found before the "fLaC" magic.

    • get hasXiphComment(): boolean

      Whether a VorbisComment block was present on disk when the file was opened.

      Returns boolean

      true if a XiphComment was read from the FLAC metadata blocks.

    • get isOpen(): boolean

      Whether the underlying stream is currently open. Synchronous.

      Returns boolean

    • get isValid(): boolean

      Whether this file was parsed successfully.

      Returns boolean

    • get name(): string

      The name (path) of the underlying stream, as reported by the stream itself. Synchronous.

      Returns string

    • get readOnly(): boolean

      Whether the underlying stream is read-only. Synchronous.

      Returns boolean

    Methods

    • Resets the stream position to the beginning (equivalent to seek(0, Position.Beginning)).

      Returns Promise<void>

      A promise that resolves when the operation is complete.

    • Returns the complex properties for the given key. For the "PICTURE" key, each picture block is represented as a VariantMap.

      Parameters

      • key: string

        The complex property key (case-insensitive).

      Returns VariantMap[]

      An array of variant maps, one per picture (or delegated to the base class).

    • Returns the list of complex property keys supported by this file. Includes "PICTURE" if any embedded pictures are present.

      Returns string[]

      An array of supported complex property key strings.

    • Returns the total length of the stream in bytes.

      Note: this is an async method rather than a getter because getters cannot be async.

      Returns Promise<number>

      A promise resolving to the stream length in bytes.

    • Searches the stream forward for pattern starting at fromOffset.

      The stream cursor is restored to its original position after the search. If before is provided, the search stops (returning -1) as soon as before is encountered.

      Parameters

      • pattern: ByteVector

        The byte sequence to search for.

      • fromOffset: number = 0

        Byte offset at which to start searching. Defaults to 0.

      • Optionalbefore: ByteVector

        Optional sentinel; if found before pattern, returns -1.

      Returns Promise<number>

      A promise resolving to the byte offset of the first match, or -1 if not found.

    • Returns the ID3v1 tag.

      Parameters

      • Optionalcreate: boolean

        If true and no ID3v1 tag exists, a new empty one is created.

      Returns ID3v1Tag | null

      The ID3v1Tag, or null if not present and create is falsy.

    • Returns the ID3v2 tag.

      Parameters

      • Optionalcreate: boolean

        If true and no ID3v2 tag exists, a new empty one is created.

      Returns Id3v2Tag | null

      The Id3v2Tag, or null if not present and create is falsy.

    • Inserts data into the stream at start, optionally replacing replace bytes.

      Parameters

      • data: ByteVector

        The bytes to insert.

      • start: number = 0

        Byte offset at which to insert. Defaults to 0.

      • replace: number = 0

        Number of bytes to overwrite. Defaults to 0.

      Returns Promise<void>

      A promise that resolves when the operation is complete.

    • Reads up to length bytes from the current stream position.

      Parameters

      • length: number

        The maximum number of bytes to read.

      Returns Promise<ByteVector>

      A promise resolving to the bytes read as a ByteVector.

    • Removes length bytes from the stream starting at start.

      Parameters

      • start: number = 0

        Byte offset of the first byte to remove. Defaults to 0.

      • length: number = 0

        Number of bytes to remove. Defaults to 0.

      Returns Promise<void>

      A promise that resolves when the operation is complete.

    • Removes all embedded pictures from the file.

      Returns void

    • Removes unsupported properties from the tag.

      Parameters

      • properties: string[]

        The list of property keys to remove.

      Returns void

    • Searches the stream backward for pattern, starting at fromOffset (default: end of file).

      The stream cursor is restored to its original position after the search. If before is provided, the search stops (returning -1) as soon as before is encountered while scanning backward.

      Parameters

      • pattern: ByteVector

        The byte sequence to search for.

      • fromOffset: number = 0

        Upper bound for the search. 0 means end of file. Defaults to 0.

      • Optionalbefore: ByteVector

        Optional sentinel; if found before pattern, returns -1.

      Returns Promise<number>

      A promise resolving to the byte offset of the match, or -1 if not found.

    • Writes all pending tag and picture changes back to the underlying stream.

      Returns Promise<boolean>

      true on success, false if the file is read-only or invalid.

    • Moves the stream's read/write cursor to offset relative to position.

      Parameters

      • offset: number

        The byte offset to seek to.

      • position: Position = Position.Beginning

        The seek origin. Defaults to Position.Beginning.

      Returns Promise<void>

      A promise that resolves when the seek is complete.

    • Sets the complex properties for the given key. For the "PICTURE" key, replaces all embedded pictures with those derived from the provided variant maps.

      Parameters

      • key: string

        The complex property key (case-insensitive).

      • value: VariantMap[]

        An array of variant maps describing the new property values.

      Returns boolean

      true if the key was handled, false if delegated to the base class.

    • Removes the tag types indicated by tags from the in-memory representation. Changes are written to disk the next time save is called.

      Parameters

      Returns void

    • Returns the current byte offset of the stream cursor.

      Returns Promise<number>

      A promise resolving to the cursor position.

    • Truncates (or extends) the stream to exactly length bytes.

      Parameters

      • length: number

        The desired stream length in bytes.

      Returns Promise<void>

      A promise that resolves when the truncation is complete.

    • Writes data at the current stream position.

      Parameters

      Returns Promise<void>

      A promise that resolves when the write is complete.

    • Returns the XiphComment (Vorbis Comment) tag.

      Parameters

      • Optionalcreate: boolean

        If true and no XiphComment exists, a new empty one is created.

      Returns XiphComment | null

      The XiphComment, or null if not present and create is falsy.

    • The size of the read buffer used by find and rfind, in bytes.

      Returns number

      The buffer size (1024).

    • Opens a FLAC file and parses its metadata.

      Parameters

      • stream: IOStream

        The I/O stream to read from.

      • readProperties: boolean = true

        Whether to parse audio properties (default true).

      • readStyle: ReadStyle = ReadStyle.Average

        Accuracy / speed trade-off for property reading.

      Returns Promise<FlacFile>

      A fully initialised FlacFile instance.