UNPKG

@ctrl/video-filename-parser

Version:
46 lines (45 loc) 1.96 kB
export var AudioCodec; (function (AudioCodec) { AudioCodec["MP3"] = "MP3"; AudioCodec["MP2"] = "MP2"; AudioCodec["DOLBY"] = "Dolby Digital"; AudioCodec["EAC3"] = "Dolby Digital Plus"; AudioCodec["AAC"] = "AAC"; AudioCodec["FLAC"] = "FLAC"; AudioCodec["DTS"] = "DTS"; AudioCodec["DTSHD"] = "DTS-HD"; AudioCodec["TRUEHD"] = "Dolby TrueHD"; AudioCodec["OPUS"] = "Opus"; AudioCodec["VORBIS"] = "Vorbis"; AudioCodec["PCM"] = "PCM"; AudioCodec["LPCM"] = "LPCM"; })(AudioCodec || (AudioCodec = {})); const audioCodecPatterns = [ { name: 'dolby-atmos', codec: AudioCodec.EAC3, regex: /\bDolby[-_. ]?Atmos\b/i }, { name: 'eac3', codec: AudioCodec.EAC3, regex: /\b(?:EAC3|DDP(?:\d(?:[.\s-]?\d)?)?|DD\+)\b/i }, { name: 'truehd', codec: AudioCodec.TRUEHD, regex: /\bTrue-?HD\b/i }, { name: 'dolby', codec: AudioCodec.DOLBY, regex: /\b(?:Dolby-?Digital|Dolby|DD(?:\d(?:[.\s-]?\d)?)?|AC3D?)\b/i, }, { name: 'dts-hd', codec: AudioCodec.DTSHD, regex: /\b(?:DTS-?HD|DTS-?MA|DTS-X)\b/i }, { name: 'dts', codec: AudioCodec.DTS, regex: /\bDTS\b/i }, { name: 'aac', codec: AudioCodec.AAC, regex: /\bAAC(?=(?:\d(?:[.\s]?\d)?)?(?:ch)?\b)/i }, { name: 'flac', codec: AudioCodec.FLAC, regex: /\bFLAC\b/i }, { name: 'mp3', codec: AudioCodec.MP3, regex: /\b(?:LAME(?:\d)+-?(?:\d)+|mp3)\b/i }, { name: 'mp2', codec: AudioCodec.MP2, regex: /\bmp2\b/i }, { name: 'lpcm', codec: AudioCodec.LPCM, regex: /\bLPCM\b/i }, { name: 'pcm', codec: AudioCodec.PCM, regex: /\bPCM\b/i }, { name: 'opus', codec: AudioCodec.OPUS, regex: /\bOpus\b/i }, { name: 'vorbis', codec: AudioCodec.VORBIS, regex: /\bVorbis\b/i }, ]; export function parseAudioCodec(title) { for (const { codec, regex } of audioCodecPatterns) { const result = regex.exec(title); if (result) { return { codec, source: result[0] }; } } return {}; }