mirror of https://github.com/yutto-dev/yutto
✨ feat: support download dolby audios for bangumi (#448)
This commit is contained in:
parent
ffc5e2127c
commit
585edfaeb9
|
@ -107,30 +107,43 @@ async def get_bangumi_playurl(
|
||||||
Logger.warning(f"视频({format_ids(avid, cid)})是预览视频(疑似未登录或非大会员用户)")
|
Logger.warning(f"视频({format_ids(avid, cid)})是预览视频(疑似未登录或非大会员用户)")
|
||||||
if video_info.get("dash") is None:
|
if video_info.get("dash") is None:
|
||||||
raise UnSupportedTypeError(f"该视频({format_ids(avid, cid)})尚不支持 DASH 格式")
|
raise UnSupportedTypeError(f"该视频({format_ids(avid, cid)})尚不支持 DASH 格式")
|
||||||
return (
|
|
||||||
[
|
videos: list[VideoUrlMeta] = [
|
||||||
|
{
|
||||||
|
"url": video["base_url"],
|
||||||
|
"mirrors": video["backup_url"] if video["backup_url"] is not None else [],
|
||||||
|
"codec": video_codec_map[video["codecid"]],
|
||||||
|
"width": video["width"],
|
||||||
|
"height": video["height"],
|
||||||
|
"quality": video["id"],
|
||||||
|
}
|
||||||
|
for video in video_info["dash"]["video"]
|
||||||
|
]
|
||||||
|
audios: list[AudioUrlMeta] = [
|
||||||
|
{
|
||||||
|
"url": audio["base_url"],
|
||||||
|
"mirrors": audio["backup_url"] if audio["backup_url"] is not None else [],
|
||||||
|
"codec": audio_codec_map[audio["codecid"]],
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"quality": audio["id"],
|
||||||
|
}
|
||||||
|
for audio in video_info["dash"]["audio"]
|
||||||
|
]
|
||||||
|
if video_info["dash"]["dolby"] is not None and video_info["dash"]["dolby"]["audio"] is not None:
|
||||||
|
dolby_audios_json = video_info["dash"]["dolby"]["audio"]
|
||||||
|
audios.extend(
|
||||||
{
|
{
|
||||||
"url": video["base_url"],
|
"url": dolby_audio_json["base_url"],
|
||||||
"mirrors": video["backup_url"] if video["backup_url"] is not None else [],
|
"mirrors": dolby_audio_json["backup_url"] if dolby_audio_json["backup_url"] is not None else [],
|
||||||
"codec": video_codec_map[video["codecid"]],
|
"codec": "eac3", # TODO: 由于这里的 codecid 仍然是 0,所以无法通过 audio_codec_map 转换,暂时直接硬编码
|
||||||
"width": video["width"],
|
|
||||||
"height": video["height"],
|
|
||||||
"quality": video["id"],
|
|
||||||
}
|
|
||||||
for video in video_info["dash"]["video"]
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"url": audio["base_url"],
|
|
||||||
"mirrors": audio["backup_url"] if audio["backup_url"] is not None else [],
|
|
||||||
"codec": audio_codec_map[audio["codecid"]],
|
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 0,
|
"height": 0,
|
||||||
"quality": audio["id"],
|
"quality": dolby_audio_json["id"],
|
||||||
}
|
}
|
||||||
for audio in video_info["dash"]["audio"]
|
for dolby_audio_json in dolby_audios_json
|
||||||
],
|
)
|
||||||
)
|
return (videos, audios)
|
||||||
|
|
||||||
|
|
||||||
async def get_bangumi_subtitles(
|
async def get_bangumi_subtitles(
|
||||||
|
|
Loading…
Reference in New Issue