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
/
streamable.py
diff --git
a/youtube_dl/extractor/streamable.py
b/youtube_dl/extractor/streamable.py
index 1c61437a45901b91691f1d394f92d272ffd2e333..34725274e4148a1df3d2e3468600cb1c3eafedbd 100644
(file)
--- a/
youtube_dl/extractor/streamable.py
+++ b/
youtube_dl/extractor/streamable.py
@@
-1,6
+1,8
@@
# coding: utf-8
from __future__ import unicode_literals
# coding: utf-8
from __future__ import unicode_literals
+import re
+
from .common import InfoExtractor
from ..utils import (
ExtractorError,
from .common import InfoExtractor
from ..utils import (
ExtractorError,
@@
-10,7
+12,7
@@
from ..utils import (
class StreamableIE(InfoExtractor):
class StreamableIE(InfoExtractor):
- _VALID_URL = r'https?://streamable\.com/(?:
e
/)?(?P<id>\w+)'
+ _VALID_URL = r'https?://streamable\.com/(?:
[es]
/)?(?P<id>\w+)'
_TESTS = [
{
'url': 'https://streamable.com/dnd1',
_TESTS = [
{
'url': 'https://streamable.com/dnd1',
@@
-19,7
+21,7
@@
class StreamableIE(InfoExtractor):
'id': 'dnd1',
'ext': 'mp4',
'title': 'Mikel Oiarzabal scores to make it 0-3 for La Real against Espanyol',
'id': 'dnd1',
'ext': 'mp4',
'title': 'Mikel Oiarzabal scores to make it 0-3 for La Real against Espanyol',
- 'thumbnail': 're:https?://.*\.jpg$',
+ 'thumbnail':
r
're:https?://.*\.jpg$',
'uploader': 'teabaker',
'timestamp': 1454964157.35115,
'upload_date': '20160208',
'uploader': 'teabaker',
'timestamp': 1454964157.35115,
'upload_date': '20160208',
@@
-35,7
+37,7
@@
class StreamableIE(InfoExtractor):
'id': 'moo',
'ext': 'mp4',
'title': '"Please don\'t eat me!"',
'id': 'moo',
'ext': 'mp4',
'title': '"Please don\'t eat me!"',
- 'thumbnail': 're:https?://.*\.jpg$',
+ 'thumbnail':
r
're:https?://.*\.jpg$',
'timestamp': 1426115495,
'upload_date': '20150311',
'duration': 12,
'timestamp': 1426115495,
'upload_date': '20150311',
'duration': 12,
@@
-45,9
+47,21
@@
class StreamableIE(InfoExtractor):
{
'url': 'https://streamable.com/e/dnd1',
'only_matching': True,
{
'url': 'https://streamable.com/e/dnd1',
'only_matching': True,
+ },
+ {
+ 'url': 'https://streamable.com/s/okkqk/drxjds',
+ 'only_matching': True,
}
]
}
]
+ @staticmethod
+ def _extract_url(webpage):
+ mobj = re.search(
+ r'<iframe[^>]+src=(?P<q1>[\'"])(?P<src>(?:https?:)?//streamable\.com/(?:(?!\1).+))(?P=q1)',
+ webpage)
+ if mobj:
+ return mobj.group('src')
+
def _real_extract(self, url):
video_id = self._match_id(url)
def _real_extract(self, url):
video_id = self._match_id(url)
@@
-55,7
+69,7
@@
class StreamableIE(InfoExtractor):
# to return video info like the title properly sometimes, and doesn't
# include info like the video duration
video = self._download_json(
# to return video info like the title properly sometimes, and doesn't
# include info like the video duration
video = self._download_json(
- 'https://
streamable.com/ajax
/videos/%s' % video_id, video_id)
+ 'https://
ajax.streamable.com
/videos/%s' % video_id, video_id)
# Format IDs:
# 0 The video is being uploaded
# Format IDs:
# 0 The video is being uploaded