mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2025-10-23 15:11:08 +00:00
Merge branch 'unshackle-dl:main' into main
This commit is contained in:
@@ -89,7 +89,17 @@ class Episode(Title):
|
|||||||
|
|
||||||
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True) -> str:
|
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True) -> str:
|
||||||
primary_video_track = next(iter(media_info.video_tracks), None)
|
primary_video_track = next(iter(media_info.video_tracks), None)
|
||||||
primary_audio_track = next(iter(media_info.audio_tracks), None)
|
primary_audio_track = None
|
||||||
|
if media_info.audio_tracks:
|
||||||
|
sorted_audio = sorted(
|
||||||
|
media_info.audio_tracks,
|
||||||
|
key=lambda x: (
|
||||||
|
float(x.bit_rate) if x.bit_rate else 0,
|
||||||
|
bool(x.format_additionalfeatures and "JOC" in x.format_additionalfeatures)
|
||||||
|
),
|
||||||
|
reverse=True
|
||||||
|
)
|
||||||
|
primary_audio_track = sorted_audio[0]
|
||||||
unique_audio_languages = len({x.language.split("-")[0] for x in media_info.audio_tracks if x.language})
|
unique_audio_languages = len({x.language.split("-")[0] for x in media_info.audio_tracks if x.language})
|
||||||
|
|
||||||
# Title [Year] SXXEXX Name (or Title [Year] SXX if folder)
|
# Title [Year] SXXEXX Name (or Title [Year] SXX if folder)
|
||||||
|
|||||||
@@ -52,7 +52,17 @@ class Movie(Title):
|
|||||||
|
|
||||||
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True) -> str:
|
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True) -> str:
|
||||||
primary_video_track = next(iter(media_info.video_tracks), None)
|
primary_video_track = next(iter(media_info.video_tracks), None)
|
||||||
primary_audio_track = next(iter(media_info.audio_tracks), None)
|
primary_audio_track = None
|
||||||
|
if media_info.audio_tracks:
|
||||||
|
sorted_audio = sorted(
|
||||||
|
media_info.audio_tracks,
|
||||||
|
key=lambda x: (
|
||||||
|
float(x.bit_rate) if x.bit_rate else 0,
|
||||||
|
bool(x.format_additionalfeatures and "JOC" in x.format_additionalfeatures)
|
||||||
|
),
|
||||||
|
reverse=True
|
||||||
|
)
|
||||||
|
primary_audio_track = sorted_audio[0]
|
||||||
unique_audio_languages = len({x.language.split("-")[0] for x in media_info.audio_tracks if x.language})
|
unique_audio_languages = len({x.language.split("-")[0] for x in media_info.audio_tracks if x.language})
|
||||||
|
|
||||||
# Name (Year)
|
# Name (Year)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class Audio(Track):
|
|||||||
AAC = "AAC" # https://wikipedia.org/wiki/Advanced_Audio_Coding
|
AAC = "AAC" # https://wikipedia.org/wiki/Advanced_Audio_Coding
|
||||||
AC3 = "DD" # https://wikipedia.org/wiki/Dolby_Digital
|
AC3 = "DD" # https://wikipedia.org/wiki/Dolby_Digital
|
||||||
EC3 = "DD+" # https://wikipedia.org/wiki/Dolby_Digital_Plus
|
EC3 = "DD+" # https://wikipedia.org/wiki/Dolby_Digital_Plus
|
||||||
|
AC4 = "AC-4" # https://wikipedia.org/wiki/Dolby_AC-4
|
||||||
OPUS = "OPUS" # https://wikipedia.org/wiki/Opus_(audio_format)
|
OPUS = "OPUS" # https://wikipedia.org/wiki/Opus_(audio_format)
|
||||||
OGG = "VORB" # https://wikipedia.org/wiki/Vorbis
|
OGG = "VORB" # https://wikipedia.org/wiki/Vorbis
|
||||||
DTS = "DTS" # https://en.wikipedia.org/wiki/DTS_(company)#DTS_Digital_Surround
|
DTS = "DTS" # https://en.wikipedia.org/wiki/DTS_(company)#DTS_Digital_Surround
|
||||||
@@ -31,6 +32,8 @@ class Audio(Track):
|
|||||||
return Audio.Codec.AC3
|
return Audio.Codec.AC3
|
||||||
if mime == "ec-3":
|
if mime == "ec-3":
|
||||||
return Audio.Codec.EC3
|
return Audio.Codec.EC3
|
||||||
|
if mime == "ac-4":
|
||||||
|
return Audio.Codec.AC4
|
||||||
if mime == "opus":
|
if mime == "opus":
|
||||||
return Audio.Codec.OPUS
|
return Audio.Codec.OPUS
|
||||||
if mime == "dtsc":
|
if mime == "dtsc":
|
||||||
@@ -60,6 +63,8 @@ class Audio(Track):
|
|||||||
return Audio.Codec.AC3
|
return Audio.Codec.AC3
|
||||||
if profile.startswith("ddplus"):
|
if profile.startswith("ddplus"):
|
||||||
return Audio.Codec.EC3
|
return Audio.Codec.EC3
|
||||||
|
if profile.startswith("ac4"):
|
||||||
|
return Audio.Codec.AC4
|
||||||
if profile.startswith("playready-oggvorbis"):
|
if profile.startswith("playready-oggvorbis"):
|
||||||
return Audio.Codec.OGG
|
return Audio.Codec.OGG
|
||||||
raise ValueError(f"The Content Profile '{profile}' is not a supported Audio Codec")
|
raise ValueError(f"The Content Profile '{profile}' is not a supported Audio Codec")
|
||||||
|
|||||||
Reference in New Issue
Block a user