|
@ -3554,7 +3554,7 @@ class FunnyOrDieIE(InfoExtractor): |
|
|
return [info] |
|
|
return [info] |
|
|
|
|
|
|
|
|
class SteamIE(InfoExtractor): |
|
|
class SteamIE(InfoExtractor): |
|
|
_VALID_URL = r"""http://store.steampowered.com/ |
|
|
|
|
|
|
|
|
_VALID_URL = r"""http://store\.steampowered\.com/ |
|
|
(agecheck/)? |
|
|
(agecheck/)? |
|
|
(?P<urltype>video|app)/ #If the page is only for videos or for a game |
|
|
(?P<urltype>video|app)/ #If the page is only for videos or for a game |
|
|
(?P<gameID>\d+)/? |
|
|
(?P<gameID>\d+)/? |
|
@ -3988,7 +3988,7 @@ class KeekIE(InfoExtractor): |
|
|
return [info] |
|
|
return [info] |
|
|
|
|
|
|
|
|
class TEDIE(InfoExtractor): |
|
|
class TEDIE(InfoExtractor): |
|
|
_VALID_URL=r'''http://www.ted.com/ |
|
|
|
|
|
|
|
|
_VALID_URL=r'''http://www\.ted\.com/ |
|
|
( |
|
|
( |
|
|
((?P<type_playlist>playlists)/(?P<playlist_id>\d+)) # We have a playlist |
|
|
((?P<type_playlist>playlists)/(?P<playlist_id>\d+)) # We have a playlist |
|
|
| |
|
|
| |
|
@ -4244,7 +4244,7 @@ class ARDIE(InfoExtractor): |
|
|
return [info] |
|
|
return [info] |
|
|
|
|
|
|
|
|
class TumblrIE(InfoExtractor): |
|
|
class TumblrIE(InfoExtractor): |
|
|
_VALID_URL = r'http://(?P<blog_name>.*?).tumblr.com/((post)|(video))/(?P<id>\d*)/(.*?)' |
|
|
|
|
|
|
|
|
_VALID_URL = r'http://(?P<blog_name>.*?)\.tumblr\.com/((post)|(video))/(?P<id>\d*)/(.*?)' |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
m_url = re.match(self._VALID_URL, url) |
|
|
m_url = re.match(self._VALID_URL, url) |
|
@ -4254,7 +4254,7 @@ class TumblrIE(InfoExtractor): |
|
|
url = 'http://%s.tumblr.com/post/%s/' % (blog, video_id) |
|
|
url = 'http://%s.tumblr.com/post/%s/' % (blog, video_id) |
|
|
webpage = self._download_webpage(url, video_id) |
|
|
webpage = self._download_webpage(url, video_id) |
|
|
|
|
|
|
|
|
re_video = r'src=\\x22(?P<video_url>http://%s.tumblr.com/video_file/%s/(.*?))\\x22 type=\\x22video/(?P<ext>.*?)\\x22' % (blog, video_id) |
|
|
|
|
|
|
|
|
re_video = r'src=\\x22(?P<video_url>http://%s\.tumblr\.com/video_file/%s/(.*?))\\x22 type=\\x22video/(?P<ext>.*?)\\x22' % (blog, video_id) |
|
|
video = re.search(re_video, webpage) |
|
|
video = re.search(re_video, webpage) |
|
|
if video is None: |
|
|
if video is None: |
|
|
self.to_screen("No video founded") |
|
|
self.to_screen("No video founded") |
|
@ -4278,7 +4278,7 @@ class TumblrIE(InfoExtractor): |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
|
class BandcampIE(InfoExtractor): |
|
|
class BandcampIE(InfoExtractor): |
|
|
_VALID_URL = r'http://.*?.bandcamp.com/track/(?P<title>.*)' |
|
|
|
|
|
|
|
|
_VALID_URL = r'http://.*?\.bandcamp\.com/track/(?P<title>.*)' |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
mobj = re.match(self._VALID_URL, url) |
|
|
mobj = re.match(self._VALID_URL, url) |
|
@ -4303,7 +4303,7 @@ class BandcampIE(InfoExtractor): |
|
|
mp3_info = info[u'downloads'][u'mp3-320'] |
|
|
mp3_info = info[u'downloads'][u'mp3-320'] |
|
|
# If we try to use this url it says the link has expired |
|
|
# If we try to use this url it says the link has expired |
|
|
initial_url = mp3_info[u'url'] |
|
|
initial_url = mp3_info[u'url'] |
|
|
re_url = r'(?P<server>http://(.*?).bandcamp.com)/download/track\?enc=mp3-320&fsig=(?P<fsig>.*?)&id=(?P<id>.*?)&ts=(?P<ts>.*)$' |
|
|
|
|
|
|
|
|
re_url = r'(?P<server>http://(.*?)\.bandcamp\.com)/download/track\?enc=mp3-320&fsig=(?P<fsig>.*?)&id=(?P<id>.*?)&ts=(?P<ts>.*)$' |
|
|
m_url = re.match(re_url, initial_url) |
|
|
m_url = re.match(re_url, initial_url) |
|
|
#We build the url we will use to get the final track url |
|
|
#We build the url we will use to get the final track url |
|
|
# This url is build in Bandcamp in the script download_bunde_*.js |
|
|
# This url is build in Bandcamp in the script download_bunde_*.js |
|
|