Get video by id instead of resolution pattern
All checks were successful
ci / Image build (push) Successful in 2m25s
ci / Deployment (push) Successful in 25s

This commit is contained in:
Joris Bertomeu
2025-08-25 17:18:36 +02:00
parent 58f4901c0a
commit 9025960ee0

View File

@@ -396,6 +396,7 @@ const parseMPDStream = async (mpdUrl) => {
}); });
for (let i = 0; i < parsedManifest.playlists.length; i++) { for (let i = 0; i < parsedManifest.playlists.length; i++) {
obj.videoTracks.push({ obj.videoTracks.push({
id: parsedManifest.playlists?.[i]?.attributes?.NAME,
name: `${parsedManifest.playlists?.[i]?.attributes?.RESOLUTION?.width || 'N/C'}x${parsedManifest.playlists?.[i]?.attributes?.RESOLUTION?.height || 'N/C'}`, name: `${parsedManifest.playlists?.[i]?.attributes?.RESOLUTION?.width || 'N/C'}x${parsedManifest.playlists?.[i]?.attributes?.RESOLUTION?.height || 'N/C'}`,
codec: parsedManifest.playlists?.[i]?.attributes?.CODECS, codec: parsedManifest.playlists?.[i]?.attributes?.CODECS,
bandwidth: parsedManifest.playlists?.[i]?.attributes?.BANDWIDTH, bandwidth: parsedManifest.playlists?.[i]?.attributes?.BANDWIDTH,
@@ -557,7 +558,7 @@ videoQueue.process((job) => {
const subPart = wantedSubtitles.length > 0 ? `--select-subtitle lang=\"${wantedSubtitles.map(elem => elem.language).join('|')}\"${bwSubs}` : '--drop-subtitle lang=\".*\"'; const subPart = wantedSubtitles.length > 0 ? `--select-subtitle lang=\"${wantedSubtitles.map(elem => elem.language).join('|')}\"${bwSubs}` : '--drop-subtitle lang=\".*\"';
const audioPart = wantedAudioTracks.length > 0 ? `--select-audio lang=\"${wantedAudioTracks.map(elem => elem.language).join('|')}\":codecs=\"${[...new Set(wantedAudioTracks.map(elem => elem.attributes.CODECS))].join('|')}\":for=all${bwAudio}` : '--drop-audio lang=\".*\"'; const audioPart = wantedAudioTracks.length > 0 ? `--select-audio lang=\"${wantedAudioTracks.map(elem => elem.language).join('|')}\":codecs=\"${[...new Set(wantedAudioTracks.map(elem => elem.attributes.CODECS))].join('|')}\":for=all${bwAudio}` : '--drop-audio lang=\".*\"';
const { executeCommand, emitter } = runProgressCommand(`${downloaderPath} \"${mpdUrl}\" --save-dir ${workdir} --save-name ${mp4Filename}_encrypted --select-video res=\"${wantedResolution.resolution.width}*\" ${audioPart} ${subPart}`, true); const { executeCommand, emitter } = runProgressCommand(`${downloaderPath} \"${mpdUrl}\" --save-dir ${workdir} --save-name ${mp4Filename}_encrypted --select-video id=\"${wantedResolution.id}\" ${audioPart} ${subPart}`, true);
emitter.on('percentage', (percentage) => { emitter.on('percentage', (percentage) => {
if (percentage < previousPercentage) { if (percentage < previousPercentage) {