From 75e1b46add074004ae9f7a8638bcc8d849e825f0 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Sun, 18 Aug 2013 17:02:39 +0200 Subject: [PATCH 1/3] Download from utv.unistra.fr (PR #1271) Squashed to a single commit to keep the file 'youtube-dl' unchanged and remove the revert commit. --- youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/utv.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 youtube_dl/extractor/utv.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 9d12608e1b..5830511695 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -75,6 +75,7 @@ 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 0000000000..013e86a60e --- /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 f527115b5f89450e2b05c2b88e98a5bdb5b1c2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?= Date: Thu, 22 Aug 2013 13:19:35 +0200 Subject: [PATCH 2/3] Rename utv.py to unistra.py and extract more info There are other sites that could be named utv, which would conflict if they are added --- youtube_dl/extractor/__init__.py | 2 +- youtube_dl/extractor/unistra.py | 32 ++++++++++++++++++++++++++++++++ youtube_dl/extractor/utv.py | 22 ---------------------- 3 files changed, 33 insertions(+), 23 deletions(-) create mode 100644 youtube_dl/extractor/unistra.py delete mode 100644 youtube_dl/extractor/utv.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 5830511695..b4db8f0bf7 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -75,7 +75,7 @@ from .tumblr import TumblrIE from .tutv import TutvIE from .ustream import UstreamIE -from .utv import UTVIE +from .unistra import UnistraIE from .vbox7 import Vbox7IE from .veoh import VeohIE from .vevo import VevoIE diff --git a/youtube_dl/extractor/unistra.py b/youtube_dl/extractor/unistra.py new file mode 100644 index 0000000000..5ba0a90613 --- /dev/null +++ b/youtube_dl/extractor/unistra.py @@ -0,0 +1,32 @@ +import re + +from .common import InfoExtractor + +class UnistraIE(InfoExtractor): + _VALID_URL = r'http://utv.unistra.fr/(?:index|video).php\?id_video\=(\d+)' + + _TEST = { + u'url': u'http://utv.unistra.fr/video.php?id_video=154', + u'file': u'154.mp4', + u'md5': u'736f605cfdc96724d55bb543ab3ced24', + u'info_dict': { + u'title': u'M!ss Yella', + u'description': u'md5:75e8439a3e2981cd5d4b6db232e8fdfc', + }, + } + + def _real_extract(self, url): + id = re.match(self._VALID_URL, url).group(1) + webpage = self._download_webpage(url, id) + file = re.search(r'file: "(.*?)",', webpage).group(1) + title = self._html_search_regex(r'UTV - (.*?)</', webpage, u'title') + + video_url = 'http://vod-flash.u-strasbg.fr:8080/' + file + + return {'id': id, + 'title': title, + 'ext': 'mp4', + 'url': video_url, + 'description': self._html_search_regex(r'<meta name="Description" content="(.*?)"', webpage, u'description', flags=re.DOTALL), + 'thumbnail': self._search_regex(r'image: "(.*?)"', webpage, u'thumbnail'), + } diff --git a/youtube_dl/extractor/utv.py b/youtube_dl/extractor/utv.py deleted file mode 100644 index 013e86a60e..0000000000 --- a/youtube_dl/extractor/utv.py +++ /dev/null @@ -1,22 +0,0 @@ -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 4a55479fa9356098a0df4fc8192e6ebc9a0cd805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?= <jaime.marquinez.ferrandiz@gmail.com> Date: Thu, 22 Aug 2013 13:21:32 +0200 Subject: [PATCH 3/3] Credit Pierre Rudloff for JeuxVideoIE and UnistraIE --- youtube_dl/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index bf040aacd7..3f77dba693 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -27,6 +27,7 @@ 'Johny Mo Swag', 'Axel Noack', 'Albert Kim', + 'Pierre Rudloff', ) __license__ = 'Public Domain'