Files
SubMiner/src/anki-integration/mpv-edl.test.ts
T

38 lines
1.4 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { extractFileUrlsFromMpvEdlSource } from './mpv-edl';
import { toMpvEdlValue } from './mpv-edl-test-utils';
test('extractFileUrlsFromMpvEdlSource honors length-guarded file values', () => {
const url =
'https://rr1---sn.example.googlevideo.com/videoplayback?mime=video%2Fmp4&mn=sn-a,sn-b&lsig=abc%3D';
const source = `edl://!new_stream;${toMpvEdlValue(url)},title=clip,length=73`;
assert.deepEqual(extractFileUrlsFromMpvEdlSource(source), [url]);
});
test('extractFileUrlsFromMpvEdlSource reads file parameters', () => {
const initUrl = 'https://init.example/init.mp4';
const fileUrl = 'https://video.example/videoplayback?mime=video%2Fmp4';
const source = `edl://!mp4_dash,init=${toMpvEdlValue(initUrl)};file=${toMpvEdlValue(
fileUrl,
)},length=42`;
assert.deepEqual(extractFileUrlsFromMpvEdlSource(source), [fileUrl]);
});
test('extractFileUrlsFromMpvEdlSource aggregates file URLs across entries', () => {
const audioUrl = 'https://audio.example/videoplayback?mime=audio%2Fwebm';
const videoUrl = 'https://video.example/videoplayback?mime=video%2Fmp4';
const source = [
'edl://!new_stream',
toMpvEdlValue(audioUrl),
'!new_stream',
`file=${toMpvEdlValue(videoUrl)},length=50`,
'!global_tags,title=test',
].join(';');
assert.deepEqual(extractFileUrlsFromMpvEdlSource(source), [audioUrl, videoUrl]);
});