diff options
Diffstat (limited to 'youtube_dl/extractor/gaskrank.py')
-rw-r--r-- | youtube_dl/extractor/gaskrank.py | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/youtube_dl/extractor/gaskrank.py b/youtube_dl/extractor/gaskrank.py deleted file mode 100644 index 1726a6704..000000000 --- a/youtube_dl/extractor/gaskrank.py +++ /dev/null @@ -1,101 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import re -from .common import InfoExtractor -from ..utils import ( - float_or_none, - int_or_none, - unified_strdate, -) - - -class GaskrankIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?gaskrank\.tv/tv/(?P<categories>[^/]+)/(?P<id>[^/]+)\.htm' - _TESTS = [{ - 'url': 'http://www.gaskrank.tv/tv/motorrad-fun/strike-einparken-durch-anfaenger-crash-mit-groesserem-flurschaden.htm', - 'md5': '1ae88dbac97887d85ebd1157a95fc4f9', - 'info_dict': { - 'id': '201601/26955', - 'ext': 'mp4', - 'title': 'Strike! Einparken können nur Männer - Flurschaden hält sich in Grenzen *lol*', - 'thumbnail': r're:^https?://.*\.jpg$', - 'categories': ['motorrad-fun'], - 'display_id': 'strike-einparken-durch-anfaenger-crash-mit-groesserem-flurschaden', - 'uploader_id': 'Bikefun', - 'upload_date': '20170110', - 'uploader_url': None, - } - }, { - 'url': 'http://www.gaskrank.tv/tv/racing/isle-of-man-tt-2011-michael-du-15920.htm', - 'md5': 'c33ee32c711bc6c8224bfcbe62b23095', - 'info_dict': { - 'id': '201106/15920', - 'ext': 'mp4', - 'title': 'Isle of Man - Michael Dunlop vs Guy Martin - schwindelig kucken', - 'thumbnail': r're:^https?://.*\.jpg$', - 'categories': ['racing'], - 'display_id': 'isle-of-man-tt-2011-michael-du-15920', - 'uploader_id': 'IOM', - 'upload_date': '20170523', - 'uploader_url': 'www.iomtt.com', - } - }] - - def _real_extract(self, url): - display_id = self._match_id(url) - - webpage = self._download_webpage(url, display_id) - - title = self._og_search_title( - webpage, default=None) or self._html_search_meta( - 'title', webpage, fatal=True) - - categories = [re.match(self._VALID_URL, url).group('categories')] - - mobj = re.search( - r'Video von:\s*(?P<uploader_id>[^|]*?)\s*\|\s*vom:\s*(?P<upload_date>[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9])', - webpage) - if mobj is not None: - uploader_id = mobj.groupdict().get('uploader_id') - upload_date = unified_strdate(mobj.groupdict().get('upload_date')) - - uploader_url = self._search_regex( - r'Homepage:\s*<[^>]*>(?P<uploader_url>[^<]*)', - webpage, 'uploader_url', default=None) - tags = re.findall( - r'/tv/tags/[^/]+/"\s*>(?P<tag>[^<]*?)<', - webpage) - - view_count = self._search_regex( - r'class\s*=\s*"gkRight"(?:[^>]*>\s*<[^>]*)*icon-eye-open(?:[^>]*>\s*<[^>]*)*>\s*(?P<view_count>[0-9\.]*)', - webpage, 'view_count', default=None) - if view_count: - view_count = int_or_none(view_count.replace('.', '')) - - average_rating = self._search_regex( - r'itemprop\s*=\s*"ratingValue"[^>]*>\s*(?P<average_rating>[0-9,]+)', - webpage, 'average_rating') - if average_rating: - average_rating = float_or_none(average_rating.replace(',', '.')) - - video_id = self._search_regex( - r'https?://movies\.gaskrank\.tv/([^-]*?)(-[^\.]*)?\.mp4', - webpage, 'video id', default=display_id) - - entry = self._parse_html5_media_entries(url, webpage, video_id)[0] - entry.update({ - 'id': video_id, - 'title': title, - 'categories': categories, - 'display_id': display_id, - 'uploader_id': uploader_id, - 'upload_date': upload_date, - 'uploader_url': uploader_url, - 'tags': tags, - 'view_count': view_count, - 'average_rating': average_rating, - }) - self._sort_formats(entry['formats']) - - return entry |