Fix Youtube mplayer error "No stream found to handle url"
Set the "_play_proxy" boolean attribute to the video object to pipe the video to mplayer. Fix Youtube module test. Signed-off-by: Vincent Texier <vit@free.fr>
This commit is contained in:
parent
dec4d08184
commit
baa289a777
3 changed files with 10 additions and 5 deletions
|
|
@ -95,6 +95,10 @@ class VideoPage(BasePage):
|
||||||
|
|
||||||
video.set_empty_fields(NotAvailable)
|
video.set_empty_fields(NotAvailable)
|
||||||
|
|
||||||
|
# Dailymotion video url is protected by a redirection with cookie verification
|
||||||
|
# so we need to use the "play_proxy" method using urllib2 proxy streaming to handle this
|
||||||
|
video._play_proxy = True
|
||||||
|
|
||||||
return video
|
return video
|
||||||
|
|
||||||
def set_video_metadata(self, video):
|
def set_video_metadata(self, video):
|
||||||
|
|
@ -153,10 +157,6 @@ class VideoPage(BasePage):
|
||||||
|
|
||||||
video.url = unicode(info[max_quality])
|
video.url = unicode(info[max_quality])
|
||||||
|
|
||||||
# dailymotion video url is protected by a redirection with cookie verification
|
|
||||||
# so we need to do a "play_proxy" using urllib2 proxy streaming to handle this
|
|
||||||
video._play_proxy = True
|
|
||||||
|
|
||||||
class KidsVideoPage(VideoPage):
|
class KidsVideoPage(VideoPage):
|
||||||
|
|
||||||
CONTROLLER_PAGE = 'http://kids.dailymotion.com/controller/Page_Kids_KidsUserHome?%s'
|
CONTROLLER_PAGE = 'http://kids.dailymotion.com/controller/Page_Kids_KidsUserHome?%s'
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,11 @@ class YoutubeBackend(BaseBackend, ICapVideo, ICapCollection):
|
||||||
self._set_video_url(video)
|
self._set_video_url(video)
|
||||||
|
|
||||||
video.set_empty_fields(NotAvailable)
|
video.set_empty_fields(NotAvailable)
|
||||||
|
|
||||||
|
# Youtube video url is https, using ssl encryption
|
||||||
|
# so we need to use the "play_proxy" method using urllib2 proxy streaming to handle this
|
||||||
|
video._play_proxy = True
|
||||||
|
|
||||||
return video
|
return video
|
||||||
|
|
||||||
def search_videos(self, pattern, sortby=ICapVideo.SEARCH_RELEVANCE, nsfw=False):
|
def search_videos(self, pattern, sortby=ICapVideo.SEARCH_RELEVANCE, nsfw=False):
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class YoutubeTest(BackendTest):
|
||||||
self.assertTrue(len(l) > 0)
|
self.assertTrue(len(l) > 0)
|
||||||
v = l[0]
|
v = l[0]
|
||||||
self.backend.fillobj(v, ('url',))
|
self.backend.fillobj(v, ('url',))
|
||||||
self.assertTrue(v.url and v.url.startswith('http://'), 'URL for video "%s" not found: %s' % (v.id, v.url))
|
self.assertTrue(v.url and v.url.startswith('https://'), 'URL for video "%s" not found: %s' % (v.id, v.url))
|
||||||
assert self.backend.get_video(v.shorturl)
|
assert self.backend.get_video(v.shorturl)
|
||||||
self.backend.browser.openurl(v.url)
|
self.backend.browser.openurl(v.url)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue