projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'jtwaleson/master'
[youtube-dl]
/
youtube_dl
/
extractor
/
ustream.py
diff --git
a/youtube_dl/extractor/ustream.py
b/youtube_dl/extractor/ustream.py
index 488b10df96e298c683cd02287e2da0c49f21a1cc..53dc3a496ff65edf044137540080d9190ad8d72b 100644
(file)
--- a/
youtube_dl/extractor/ustream.py
+++ b/
youtube_dl/extractor/ustream.py
@@
-1,12
+1,10
@@
from __future__ import unicode_literals
from __future__ import unicode_literals
-import json
import re
from .common import InfoExtractor
from ..utils import (
compat_urlparse,
import re
from .common import InfoExtractor
from ..utils import (
compat_urlparse,
- get_meta_content,
)
)
@@
-47,13
+45,13
@@
class UstreamIE(InfoExtractor):
self.report_extraction(video_id)
video_title = self._html_search_regex(r'data-title="(?P<title>.+)"',
self.report_extraction(video_id)
video_title = self._html_search_regex(r'data-title="(?P<title>.+)"',
- webpage, 'title')
+
webpage, 'title')
uploader = self._html_search_regex(r'data-content-type="channel".*?>(?P<uploader>.*?)</a>',
uploader = self._html_search_regex(r'data-content-type="channel".*?>(?P<uploader>.*?)</a>',
- webpage, 'uploader', fatal=False, flags=re.DOTALL)
+
webpage, 'uploader', fatal=False, flags=re.DOTALL)
thumbnail = self._html_search_regex(r'<link rel="image_src" href="(?P<thumb>.*?)"',
thumbnail = self._html_search_regex(r'<link rel="image_src" href="(?P<thumb>.*?)"',
- webpage, 'thumbnail', fatal=False)
+
webpage, 'thumbnail', fatal=False)
return {
'id': video_id,
return {
'id': video_id,
@@
-68,21
+66,36
@@
class UstreamIE(InfoExtractor):
class UstreamChannelIE(InfoExtractor):
_VALID_URL = r'https?://www\.ustream\.tv/channel/(?P<slug>.+)'
IE_NAME = 'ustream:channel'
class UstreamChannelIE(InfoExtractor):
_VALID_URL = r'https?://www\.ustream\.tv/channel/(?P<slug>.+)'
IE_NAME = 'ustream:channel'
+ _TEST = {
+ 'url': 'http://www.ustream.tv/channel/channeljapan',
+ 'info_dict': {
+ 'id': '10874166',
+ },
+ 'playlist_mincount': 17,
+ }
def _real_extract(self, url):
m = re.match(self._VALID_URL, url)
def _real_extract(self, url):
m = re.match(self._VALID_URL, url)
-
slug
= m.group('slug')
- webpage = self._download_webpage(url,
slug
)
- channel_id =
get_meta_content
('ustream:channel_id', webpage)
+
display_id
= m.group('slug')
+ webpage = self._download_webpage(url,
display_id
)
+ channel_id =
self._html_search_meta
('ustream:channel_id', webpage)
BASE = 'http://www.ustream.tv'
next_url = '/ajax/socialstream/videos/%s/1.json' % channel_id
video_ids = []
while next_url:
BASE = 'http://www.ustream.tv'
next_url = '/ajax/socialstream/videos/%s/1.json' % channel_id
video_ids = []
while next_url:
- reply = json.loads(self._download_webpage(compat_urlparse.urljoin(BASE, next_url), channel_id))
+ reply = self._download_json(
+ compat_urlparse.urljoin(BASE, next_url), display_id,
+ note='Downloading video information (next: %d)' % (len(video_ids) + 1))
video_ids.extend(re.findall(r'data-content-id="(\d.*)"', reply['data']))
next_url = reply['nextUrl']
video_ids.extend(re.findall(r'data-content-id="(\d.*)"', reply['data']))
next_url = reply['nextUrl']
- urls = ['http://www.ustream.tv/recorded/' + vid for vid in video_ids]
- url_entries = [self.url_result(eurl, 'Ustream') for eurl in urls]
- return self.playlist_result(url_entries, channel_id)
+ entries = [
+ self.url_result('http://www.ustream.tv/recorded/' + vid, 'Ustream')
+ for vid in video_ids]
+ return {
+ '_type': 'playlist',
+ 'id': channel_id,
+ 'display_id': display_id,
+ 'entries': entries,
+ }