From 33c9af1858cd5b14afe280447c99e7cd3eb87681 Mon Sep 17 00:00:00 2001 From: Felix Dollack Date: Sun, 7 Feb 2016 16:03:17 +0100 Subject: [PATCH 1/3] added new extractor from template --- youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/animefullx.py | 38 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 youtube_dl/extractor/animefullx.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 2fbc7f812..fdf4a92b8 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -20,6 +20,7 @@ from .aftonbladet import AftonbladetIE from .airmozilla import AirMozillaIE from .aljazeera import AlJazeeraIE from .alphaporno import AlphaPornoIE +from .animefullx import AnimefullxIE from .anitube import AnitubeIE from .anysex import AnySexIE from .aol import AolIE diff --git a/youtube_dl/extractor/animefullx.py b/youtube_dl/extractor/animefullx.py new file mode 100644 index 000000000..ac9e88bd9 --- /dev/null +++ b/youtube_dl/extractor/animefullx.py @@ -0,0 +1,38 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class AnimefullxIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?yourextractor\.com/watch/(?P[0-9]+)' + _TEST = { + 'url': 'http://yourextractor.com/watch/42', + 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', + 'info_dict': { + 'id': '42', + 'ext': 'mp4', + 'title': 'Video title goes here', + 'thumbnail': 're:^https?://.*\.jpg$', + # TODO more properties, either as: + # * A value + # * MD5 checksum; start the string with md5: + # * A regular expression; start the string with re: + # * Any Python type (for example int or float) + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + # TODO more code goes here, for example ... + title = self._html_search_regex(r'

(.+?)

', webpage, 'title') + + return { + 'id': video_id, + 'title': title, + 'description': self._og_search_description(webpage), + 'uploader': self._search_regex(r']+id="uploader"[^>]*>([^<]+)<', webpage, 'uploader', fatal=False), + # TODO more properties (see youtube_dl/extractor/common.py) + } \ No newline at end of file From 7e1483ac8b0b96b6c1cdfed901289f3db1e3d16e Mon Sep 17 00:00:00 2001 From: Felix Dollack Date: Sun, 7 Feb 2016 16:29:01 +0100 Subject: [PATCH 2/3] added tests (all run OK) and filled real_extract --- youtube_dl/extractor/animefullx.py | 53 +++++++++++++++++++----------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/youtube_dl/extractor/animefullx.py b/youtube_dl/extractor/animefullx.py index ac9e88bd9..8d6d262e4 100644 --- a/youtube_dl/extractor/animefullx.py +++ b/youtube_dl/extractor/animefullx.py @@ -5,34 +5,49 @@ from .common import InfoExtractor class AnimefullxIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?yourextractor\.com/watch/(?P[0-9]+)' - _TEST = { - 'url': 'http://yourextractor.com/watch/42', - 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', + _VALID_URL = r'https?://(?:www\.)?animefullx\.com/watch/(?P([a-zA-Z0-9-]+)?\d+)' + _TESTS = [{ + 'url': 'http://www.animefullx.com/watch/chobits-episode-1/', + 'md5': '48615cd86808a814d67f095c607c9435', 'info_dict': { - 'id': '42', + 'id': 'chobits-episode-1', 'ext': 'mp4', - 'title': 'Video title goes here', - 'thumbnail': 're:^https?://.*\.jpg$', - # TODO more properties, either as: - # * A value - # * MD5 checksum; start the string with md5: - # * A regular expression; start the string with re: - # * Any Python type (for example int or float) + 'title': 'Watch Chobits Episode 1 English Subbed Online - Animefullx', + }, + }, { + 'url': 'http://www.animefullx.com/watch/ao-no-exorcist-episode-1/', + 'md5': '913b370e9568ab2c53733d6ebf9c2bcd', + 'info_dict': { + 'id': 'ao-no-exorcist-episode-1', + 'ext': 'mp4', + 'title': 'Watch Ao no Exorcist Episode 1 English Subbed Online - Animefullx', } - } + }, { + 'url': 'http://www.animefullx.com/watch/8-man-after-episode-1/', + 'md5': 'b57f34b03cd37e7fb5530337802e9a4a', + 'info_dict': { + 'id': '8-man-after-episode-1', + 'ext': 'mp4', + 'title': 'Watch 8 Man After Episode 1 English Subbed Online - Animefullx', + }, + }] def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) + scripturl = self._html_search_regex(r'