mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-27 16:49:51 -07:00
38 lines
1.4 KiB
TypeScript
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]);
|
|
});
|