@@ -14,9 +14,11 @@ import getUrlExtension from "./utility/getUrlExtension";
1414import getExtensionFromContentType from "./utility/getExtensionFromContentType" ;
1515import {
1616 getEpisodeMediaType ,
17+ getEpisodeMediaTypeWithAudioContainerHint ,
1718 getMediaTypeFromContentType ,
1819 getMediaTypeFromExtension ,
1920 getMediaTypeFromPath ,
21+ isAudioContainerExtension ,
2022 isPlayableMediaExtension ,
2123 isSameMediaSource ,
2224} from "./utility/mediaType" ;
@@ -357,10 +359,7 @@ function isExplicitAudioContainer(
357359 extension : string | null | undefined ,
358360 mediaTypeHint ?: EpisodeMediaType ,
359361) : boolean {
360- if ( mediaTypeHint !== "audio" || ! extension ) return false ;
361-
362- const normalizedExtension = extension . toLowerCase ( ) ;
363- return normalizedExtension === "mp4" || normalizedExtension === "webm" ;
362+ return mediaTypeHint === "audio" && isAudioContainerExtension ( extension ) ;
364363}
365364
366365function normalizeAudioExtension (
@@ -377,26 +376,6 @@ function normalizeAudioExtension(
377376 return extension ;
378377}
379378
380- function getRegisteredEpisodeMediaType (
381- episode : Episode & { filePath ?: string } ,
382- currentEpisodeMediaTypeHint ?: EpisodeMediaType ,
383- ) : EpisodeMediaType {
384- if ( episode . mediaType ) return episode . mediaType ;
385- const fileExtension = episode . filePath
386- ? getUrlExtension ( episode . filePath )
387- : null ;
388- if (
389- isExplicitAudioContainer (
390- fileExtension ,
391- currentEpisodeMediaTypeHint ,
392- )
393- ) {
394- return "audio" ;
395- }
396-
397- return getEpisodeMediaType ( episode ) ;
398- }
399-
400379/**
401380 * UNUSED IN PRODUCTION — kept only for the #178 tests. Do NOT use this for
402381 * transcription: it derives the on-disk path from the download-path template and
@@ -527,7 +506,7 @@ export async function getEpisodeAudioBuffer(
527506 registered ?. filePath &&
528507 isSameMediaSource ( registered . streamUrl , episode . streamUrl )
529508 ) {
530- const registeredMediaType = getRegisteredEpisodeMediaType (
509+ const registeredMediaType = getEpisodeMediaTypeWithAudioContainerHint (
531510 registered ,
532511 episode . mediaType === "audio" ? episodeMediaType : undefined ,
533512 ) ;
0 commit comments