Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backups
youtube-dl
Commits
58a84b8c
Commit
58a84b8c
authored
Jan 08, 2015
by
Sergey M․
Browse files
[bilibili] Fix extraction (Closes #4660)
parent
c5d666d3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
38 deletions
+29
-38
youtube_dl/extractor/bilibili.py
youtube_dl/extractor/bilibili.py
+29
-38
No files found.
youtube_dl/extractor/bilibili.py
View file @
58a84b8c
...
...
@@ -4,9 +4,7 @@ from __future__ import unicode_literals
import
re
from
.common
import
InfoExtractor
from
..compat
import
compat_parse_qs
from
..utils
import
(
ExtractorError
,
int_or_none
,
unified_strdate
,
)
...
...
@@ -54,45 +52,38 @@ class BiliBiliIE(InfoExtractor):
thumbnail
=
self
.
_html_search_meta
(
'thumbnailUrl'
,
video_code
,
'thumbnail'
,
fatal
=
False
)
player_params
=
compat_parse_qs
(
self
.
_html_search_regex
(
r
'<iframe .*?class="player" src="https://secure\.bilibili\.(?:tv|com)/secure,([^"]+)"'
,
webpage
,
'player params'
))
cid
=
self
.
_search_regex
(
r
'cid=(\d+)'
,
webpage
,
'cid'
)
if
'cid'
in
player_params
:
cid
=
player_params
[
'cid'
][
0
]
lq_doc
=
self
.
_download_xml
(
'http://interface.bilibili.com/v_cdn_play?appkey=1&cid=%s'
%
cid
,
video_id
,
note
=
'Downloading LQ video info'
)
lq_durl
=
lq_doc
.
find
(
'./durl'
)
formats
=
[{
'format_id'
:
'lq'
,
'quality'
:
1
,
'url'
:
lq_durl
.
find
(
'./url'
).
text
,
'filesize'
:
int_or_none
(
lq_durl
.
find
(
'./size'
),
get_attr
=
'text'
),
}]
lq_doc
=
self
.
_download_xml
(
'http://interface.bilibili.cn/v_cdn_play?cid=%s'
%
cid
,
video_id
,
note
=
'Downloading LQ video info'
)
lq_durl
=
lq_doc
.
find
(
'.//durl'
)
formats
=
[{
'format_id'
:
'lq'
,
'quality'
:
1
,
'url'
:
lq_durl
.
find
(
'./url'
).
text
,
hq_doc
=
self
.
_download_xml
(
'http://interface.bilibili.com/playurl?appkey=1&cid=%s'
%
cid
,
video_id
,
note
=
'Downloading HQ video info'
,
fatal
=
False
,
)
if
hq_doc
is
not
False
:
hq_durl
=
hq_doc
.
find
(
'./durl'
)
formats
.
append
({
'format_id'
:
'hq'
,
'quality'
:
2
,
'ext'
:
'flv'
,
'url'
:
hq_durl
.
find
(
'./url'
).
text
,
'filesize'
:
int_or_none
(
lq_durl
.
find
(
'./size'
),
get_attr
=
'text'
),
}]
hq_doc
=
self
.
_download_xml
(
'http://interface.bilibili.cn/playurl?cid=%s'
%
cid
,
video_id
,
note
=
'Downloading HQ video info'
,
fatal
=
False
,
)
if
hq_doc
is
not
False
:
hq_durl
=
hq_doc
.
find
(
'.//durl'
)
formats
.
append
({
'format_id'
:
'hq'
,
'quality'
:
2
,
'ext'
:
'flv'
,
'url'
:
hq_durl
.
find
(
'./url'
).
text
,
'filesize'
:
int_or_none
(
hq_durl
.
find
(
'./size'
),
get_attr
=
'text'
),
})
else
:
raise
ExtractorError
(
'Unsupported player parameters: %r'
%
(
player_params
,))
hq_durl
.
find
(
'./size'
),
get_attr
=
'text'
),
})
self
.
_sort_formats
(
formats
)
return
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment