From 1a8527605b96441e0e0889398ce2516f2c883d18 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Sun, 18 Aug 2013 17:02:39 +0200 Subject: [PATCH 1/2] Download from utv.unistra.fr --- youtube-dl | Bin 173825 -> 174347 bytes youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/utv.py | 22 ++++++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 youtube_dl/extractor/utv.py diff --git a/youtube-dl b/youtube-dl index ae8cc98e33b73af6d7cb35fef44dc9e7f5a3ebbd..d72aaf059e101445df48ea9b591083636c970c85 100755 GIT binary patch delta 3914 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 I3ed-Y0FBy=+yDRo delta 3516 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 diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index b9bd3a429..7e5ddfacf 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -72,6 +72,7 @@ from .tudou import TudouIE from .tumblr import TumblrIE from .tutv import TutvIE from .ustream import UstreamIE +from .utv import UTVIE from .vbox7 import Vbox7IE from .veoh import VeohIE from .vevo import VevoIE diff --git a/youtube_dl/extractor/utv.py b/youtube_dl/extractor/utv.py new file mode 100644 index 000000000..013e86a60 --- /dev/null +++ b/youtube_dl/extractor/utv.py @@ -0,0 +1,22 @@ +import re + +from .common import InfoExtractor + +class UTVIE(InfoExtractor): + _VALID_URL = r'http://utv.unistra.fr/index.php\?id_video\=(\d+)' + + def _real_extract(self, url): + id = re.match(self._VALID_URL, url).group(1) + webpage = self._download_webpage(url, id) + url = re.search(r'file: "(.*?)",', webpage).group(1) + title = re.search(r'/utv/\d+/.*/(.*?).mp4', url).group(1) + + video_url = 'http://vod-flash.u-strasbg.fr:8080/' + url + + track_info = {'id':id, + 'title' : title, + 'ext' : 'mp4', + 'url' : video_url + } + + return [track_info] From 5a7fa1989e15d9c4afb085cf2d2874c16795af74 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Sun, 18 Aug 2013 17:06:26 +0200 Subject: [PATCH 2/2] Revert "Download videos from jeuxvideo.com" This reverts commit 943f7f7a399c6fb3006eb2bd68070f28a272171f. Conflicts: youtube-dl --- youtube_dl/extractor/__init__.py | 1 - youtube_dl/extractor/jeuxvideo.py | 33 ------------------------------- 2 files changed, 34 deletions(-) delete mode 100644 youtube_dl/extractor/jeuxvideo.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 7e5ddfacf..44738df84 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -36,7 +36,6 @@ from .ign import IGNIE, OneUPIE from .ina import InaIE from .infoq import InfoQIE from .instagram import InstagramIE -from .jeuxvideo import JeuxVideoIE from .jukebox import JukeboxIE from .justintv import JustinTVIE from .kankan import KankanIE diff --git a/youtube_dl/extractor/jeuxvideo.py b/youtube_dl/extractor/jeuxvideo.py deleted file mode 100644 index d74a1c9b4..000000000 --- a/youtube_dl/extractor/jeuxvideo.py +++ /dev/null @@ -1,33 +0,0 @@ -import json -import re - -from .common import InfoExtractor - -class JeuxVideoIE(InfoExtractor): - _VALID_URL = r'http://.*?\.jeuxvideo\.com/.*/(.*?)-\d+\.htm' - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - title = re.match(self._VALID_URL, url).group(1) - webpage = self._download_webpage(url, title) - m_download = re.search(r'', webpage) - - xml_link = m_download.group(1) - - id = re.search(r'http://www.jeuxvideo.com/config/\w+/0011/(.*?)/\d+_player\.xml', xml_link).group(1) - - xml_config = self._download_webpage(xml_link, title, - 'Downloading XML config') - info = re.search(r'(.*?)', - xml_config, re.MULTILINE|re.DOTALL).group(1) - info = json.loads(info)['versions'][0] - - video_url = 'http://video720.jeuxvideo.com/' + info['file'] - - track_info = {'id':id, - 'title' : title, - 'ext' : 'mp4', - 'url' : video_url - } - - return [track_info]