Rapsys Git
/
youtubedl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prepare to release.
[youtubedl]
/
youtube_dl
/
extractor
/
promptfile.py
diff --git
a/youtube_dl/extractor/promptfile.py
b/youtube_dl/extractor/promptfile.py
index d5357283addc5e1faafebff51044083eeb4fafa3..23ac93d7e248bce034fcb221d26089d8be412ee2 100644
(file)
--- a/
youtube_dl/extractor/promptfile.py
+++ b/
youtube_dl/extractor/promptfile.py
@@
-4,24
+4,23
@@
from __future__ import unicode_literals
import re
from .common import InfoExtractor
import re
from .common import InfoExtractor
-from ..compat import compat_urllib_parse
from ..utils import (
determine_ext,
ExtractorError,
from ..utils import (
determine_ext,
ExtractorError,
-
sanitized_Request
,
+
urlencode_postdata
,
)
class PromptFileIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?promptfile\.com/l/(?P<id>[0-9A-Z\-]+)'
_TEST = {
)
class PromptFileIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?promptfile\.com/l/(?P<id>[0-9A-Z\-]+)'
_TEST = {
- 'url': 'http://www.promptfile.com/l/
D21B4746E9-F01462F0FF
',
- 'md5': '
d1451b6302da7215485837aaea882c4c
',
+ 'url': 'http://www.promptfile.com/l/
86D1CE8462-576CAAE416
',
+ 'md5': '
5a7e285a26e0d66d9a263fae91bc92ce
',
'info_dict': {
'info_dict': {
- 'id': '
D21B4746E9-F01462F0FF
',
+ 'id': '
86D1CE8462-576CAAE416
',
'ext': 'mp4',
'ext': 'mp4',
- 'title': '
Bird
s.mp4',
- 'thumbnail': 're:^https?://.*\.jpg$',
+ 'title': '
ocean
s.mp4',
+ 'thumbnail':
r
're:^https?://.*\.jpg$',
}
}
}
}
@@
-33,14
+32,23
@@
class PromptFileIE(InfoExtractor):
raise ExtractorError('Video %s does not exist' % video_id,
expected=True)
raise ExtractorError('Video %s does not exist' % video_id,
expected=True)
+ chash = self._search_regex(
+ r'val\("([^"]*)"\s*\+\s*\$\("#chash"\)', webpage, 'chash')
fields = self._hidden_inputs(webpage)
fields = self._hidden_inputs(webpage)
- post = compat_urllib_parse.urlencode(fields)
- req = sanitized_Request(url, post)
- req.add_header('Content-type', 'application/x-www-form-urlencoded')
+ keys = list(fields.keys())
+ chash_key = keys[0] if len(keys) == 1 else next(
+ key for key in keys if key.startswith('cha'))
+ fields[chash_key] = chash + fields[chash_key]
+
webpage = self._download_webpage(
webpage = self._download_webpage(
- req, video_id, 'Downloading video page')
+ url, video_id, 'Downloading video page',
+ data=urlencode_postdata(fields),
+ headers={'Content-type': 'application/x-www-form-urlencoded'})
- url = self._html_search_regex(r'url:\s*\'([^\']+)\'', webpage, 'URL')
+ video_url = self._search_regex(
+ (r'<a[^>]+href=(["\'])(?P<url>(?:(?!\1).)+)\1[^>]*>\s*Download File',
+ r'<a[^>]+href=(["\'])(?P<url>https?://(?:www\.)?promptfile\.com/file/(?:(?!\1).)+)\1'),
+ webpage, 'video url', group='url')
title = self._html_search_regex(
r'<span.+title="([^"]+)">', webpage, 'title')
thumbnail = self._html_search_regex(
title = self._html_search_regex(
r'<span.+title="([^"]+)">', webpage, 'title')
thumbnail = self._html_search_regex(
@@
-49,7
+57,7
@@
class PromptFileIE(InfoExtractor):
formats = [{
'format_id': 'sd',
formats = [{
'format_id': 'sd',
- 'url': url,
+ 'url':
video_
url,
'ext': determine_ext(title),
}]
self._sort_formats(formats)
'ext': determine_ext(title),
}]
self._sort_formats(formats)