]> jfr.im git - yt-dlp.git/blame - youtube_dl/extractor/videomega.py
Fix "invalid escape sequences" error on Python 3.6
[yt-dlp.git] / youtube_dl / extractor / videomega.py
CommitLineData
67abbe95
NJ
1# coding: utf-8
2from __future__ import unicode_literals
3
bb6e3878
NJ
4import re
5
67abbe95 6from .common import InfoExtractor
e4fc8d2e
YCH
7from ..utils import (
8 decode_packed_codes,
9 sanitized_Request,
10)
67abbe95
NJ
11
12
13class VideoMegaIE(InfoExtractor):
4211e194 14 _VALID_URL = r'(?:videomega:|https?://(?:www\.)?videomega\.tv/(?:(?:view|iframe|cdn)\.php)?\?ref=)(?P<id>[A-Za-z0-9]+)'
4bdfef5a 15 _TESTS = [{
8a37f536 16 'url': 'http://videomega.tv/cdn.php?ref=AOSQBJYKIDDIKYJBQSOA',
4e1ad6e9 17 'md5': 'cc1920a58add3f05c6a93285b84fb3aa',
67abbe95 18 'info_dict': {
4e1ad6e9 19 'id': 'AOSQBJYKIDDIKYJBQSOA',
67abbe95 20 'ext': 'mp4',
4e1ad6e9 21 'title': '1254207',
ec85ded8 22 'thumbnail': r're:^https?://.*\.jpg$',
67abbe95 23 }
4bdfef5a
S
24 }, {
25 'url': 'http://videomega.tv/cdn.php?ref=AOSQBJYKIDDIKYJBQSOA&width=1070&height=600',
26 'only_matching': True,
27 }, {
28 'url': 'http://videomega.tv/view.php?ref=090051111052065112106089103052052103089106112065052111051090',
29 'only_matching': True,
30 }]
67abbe95
NJ
31
32 def _real_extract(self, url):
1cc79574 33 video_id = self._match_id(url)
a45c0a5d 34
8a37f536 35 iframe_url = 'http://videomega.tv/cdn.php?ref=%s' % video_id
5c2266df 36 req = sanitized_Request(iframe_url)
a45c0a5d 37 req.add_header('Referer', url)
4e1ad6e9 38 req.add_header('Cookie', 'noadvtday=0')
a45c0a5d 39 webpage = self._download_webpage(req, video_id)
67abbe95 40
eecc0685 41 title = self._html_search_regex(
4e1ad6e9 42 r'<title>(.+?)</title>', webpage, 'title')
eecc0685 43 title = re.sub(
4e1ad6e9 44 r'(?:^[Vv]ideo[Mm]ega\.tv\s-\s*|\s*-\svideomega\.tv$)', '', title)
67abbe95 45 thumbnail = self._search_regex(
eecc0685 46 r'<video[^>]+?poster="([^"]+)"', webpage, 'thumbnail', fatal=False)
e4fc8d2e
YCH
47
48 real_codes = decode_packed_codes(webpage)
eecc0685 49 video_url = self._search_regex(
e4fc8d2e 50 r'"src"\s*,\s*"([^"]+)"', real_codes, 'video URL')
67abbe95
NJ
51
52 return {
53 'id': video_id,
54 'title': title,
eecc0685 55 'url': video_url,
67abbe95 56 'thumbnail': thumbnail,
e1554a40 57 'http_headers': {
8a37f536 58 'Referer': iframe_url,
e1554a40 59 },
67abbe95 60 }