taglib-ts
    Preparing search index...

    Class MpegFile

    MPEG (MP3) file format handler.

    Supports ID3v1, ID3v2 and APE tags as well as MPEG / ADTS audio property reading.

    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 hasAPETag(): boolean

      Returns true if the file contains a physical APEv2 tag.

      Returns boolean

    • get hasID3v1Tag(): boolean

      Returns true if the file contains a physical ID3v1 tag.

      Returns boolean

    • get hasID3v2Tag(): boolean

      Returns true if the file contains a physical ID3v2 tag (i.e., one was found during parsing or has been written by a previous save call).

      Returns boolean

    • 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

    • Get the APE tag, optionally creating one if absent.

      Parameters

      • Optionalcreate: boolean

      Returns ApeTag | null

    • 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 list of complex-property keys supported by the tag.

      Returns string[]

      An array of key strings (e.g. "PICTURE").

    • 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 byte offset of the first valid MPEG audio frame in the file. Scanning begins after the ID3v2 tag (if present).

      Returns Promise<number>

      The file offset of the first frame, or -1 if not found.

    • Get the ID3v1 tag, optionally creating one if absent.

      Parameters

      • Optionalcreate: boolean

      Returns ID3v1Tag | null

    • Get the ID3v2 tag, optionally creating one if absent.

      Parameters

      • Optionalcreate: boolean

      Returns Id3v2Tag | null

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

    • Returns the byte offset of the last valid MPEG audio frame in the file. Scanning ends before any trailing APE or ID3v1 tag.

      Returns Promise<number>

      The file offset of the last frame, or -1 if not found.

    • Scans forward from position and returns the offset of the next valid MPEG frame.

      Parameters

      • position: number

        The byte offset at which to start scanning.

      Returns Promise<number>

      The file offset of the next valid frame, or -1 if not found.

    • Scans backward from position and returns the offset of the previous valid MPEG frame.

      Parameters

      • position: number

        The byte offset at which to start scanning (inclusive).

      Returns Promise<number>

      The file offset of the previous valid frame, or -1 if not found.

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

    • Saves the specified tag types to the file, optionally stripping tags not included in the save mask.

      Parameters

      Returns Promise<boolean>

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

    • 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 complex property values for the given key.

      Parameters

      Returns boolean

      true if the property was set, false if not supported.

    • Returns the combined tag that delegates to all present tag types, in priority order (ID3v2 > APE > ID3v1).

      Returns Tag

      The combined tag instance.

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

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

      Returns number

      The buffer size (1024).

    • Opens an MPEG file from the given stream, parsing tags and optionally audio properties.

      Parameters

      • stream: IOStream

        The I/O stream to read from.

      • readProperties: boolean = true

        Whether to read audio properties (default: true).

      • readStyle: ReadStyle = ReadStyle.Average

        The level of detail used when reading properties (default: ReadStyle.Average).

      Returns Promise<MpegFile>

      A fully initialised MpegFile instance.