Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
XianxinMao
Yt Dlp
提交
125728b0
Y
Yt Dlp
项目概览
XianxinMao
/
Yt Dlp
12 个月 前同步成功
通知
27
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
Yt Dlp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
125728b0
编写于
6月 24, 2021
作者:
M
Mevious
提交者:
GitHub
6月 25, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[funimation] Add `FunimationShowIE` (#442)
Closes #436 Authored by: Mevious
上级
15a4fd53
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
56 addition
and
1 deletion
+56
-1
yt_dlp/extractor/extractors.py
yt_dlp/extractor/extractors.py
+4
-1
yt_dlp/extractor/funimation.py
yt_dlp/extractor/funimation.py
+52
-0
未找到文件。
yt_dlp/extractor/extractors.py
浏览文件 @
125728b0
...
...
@@ -455,7 +455,10 @@
FrontendMastersCourseIE
)
from
.fujitv
import
FujiTVFODPlus7IE
from
.funimation
import
FunimationIE
from
.funimation
import
(
FunimationIE
,
FunimationShowIE
)
from
.funk
import
FunkIE
from
.fusion
import
FusionIE
from
.gaia
import
GaiaIE
...
...
yt_dlp/extractor/funimation.py
浏览文件 @
125728b0
...
...
@@ -2,12 +2,14 @@
from
__future__
import
unicode_literals
import
random
import
re
import
string
from
.common
import
InfoExtractor
from
..compat
import
compat_HTTPError
from
..utils
import
(
determine_ext
,
dict_get
,
int_or_none
,
js_to_json
,
urlencode_postdata
,
...
...
@@ -176,3 +178,53 @@ def _get_subtitles(self, url, video_id, display_id):
language
+=
'_CC'
subtitles
.
setdefault
(
language
,
[]).
append
(
url_element
)
return
subtitles
class
FunimationShowIE
(
FunimationIE
):
IE_NAME
=
'funimation:show'
_VALID_URL
=
r
'(?P<url>https?://(?:www\.)?funimation(?:\.com|now\.uk)/(?P<locale>[^/]+)?/?shows/(?P<id>[^/?#&]+))/?(?:[?#]|$)'
_TESTS
=
[{
'url'
:
'https://www.funimation.com/en/shows/sk8-the-infinity'
,
'info_dict'
:
{
'id'
:
1315000
,
'title'
:
'SK8 the Infinity'
},
'playlist_count'
:
13
,
'params'
:
{
'skip_download'
:
True
,
},
},
{
# without lang code
'url'
:
'https://www.funimation.com/shows/ouran-high-school-host-club/'
,
'info_dict'
:
{
'id'
:
39643
,
'title'
:
'Ouran High School Host Club'
},
'playlist_count'
:
26
,
'params'
:
{
'skip_download'
:
True
,
},
}]
def
_real_extract
(
self
,
url
):
base_url
,
locale
,
display_id
=
re
.
match
(
self
.
_VALID_URL
,
url
).
groups
()
show_info
=
self
.
_download_json
(
'https://title-api.prd.funimationsvc.com/v2/shows/%s?region=US&deviceType=web&locale=%s'
%
(
display_id
,
locale
or
'en'
),
display_id
)
items
=
self
.
_download_json
(
'https://prod-api-funimationnow.dadcdigital.com/api/funimation/episodes/?limit=99999&title_id=%s'
%
show_info
.
get
(
'id'
),
display_id
).
get
(
'items'
)
vod_items
=
map
(
lambda
k
:
dict_get
(
k
,
(
'mostRecentSvod'
,
'mostRecentAvod'
)).
get
(
'item'
),
items
)
return
{
'_type'
:
'playlist'
,
'id'
:
show_info
[
'id'
],
'title'
:
show_info
[
'name'
],
'entries'
:
[
self
.
url_result
(
'%s/%s'
%
(
base_url
,
vod_item
.
get
(
'episodeSlug'
)),
FunimationIE
.
ie_key
(),
vod_item
.
get
(
'episodeId'
),
vod_item
.
get
(
'episodeName'
))
for
vod_item
in
sorted
(
vod_items
,
key
=
lambda
x
:
x
.
get
(
'episodeOrder'
))],
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录