Merge remote-tracking branch 't0mm0/x-minus'

pull/8/head
Philipp Hagemeister 10 years ago
commit 0bbf12239c

@ -484,6 +484,7 @@ from .wrzuta import WrzutaIE
from .xbef import XBefIE
from .xboxclips import XboxClipsIE
from .xhamster import XHamsterIE
from .xminus import XMinusIE
from .xnxx import XNXXIE
from .xvideos import XVideosIE
from .xtube import XTubeUserIE, XTubeIE

@ -0,0 +1,53 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import int_or_none
class XMinusIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?x-minus\.org/track/(?P<id>[0-9]+)'
_TEST = {
'url': 'http://x-minus.org/track/4542/%D0%BF%D0%B5%D1%81%D0%B5%D0%BD%D0%BA%D0%B0-%D1%88%D0%BE%D1%84%D0%B5%D1%80%D0%B0.html',
'md5': '401a15f2d2dcf6d592cb95528d72a2a8',
'info_dict': {
'id': '4542',
'ext': 'mp3',
'title': 'Леонид Агутин-Песенка шофера',
'duration': 156,
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
# TODO more code goes here, for example ...
webpage = self._download_webpage(url, video_id)
artist = self._html_search_regex(
r'minus_track.artist="(.+?)"', webpage, 'artist')
title = artist + '-' + self._html_search_regex(
r'minus_track.title="(.+?)"', webpage, 'title')
duration = int_or_none(self._html_search_regex(
r'minus_track.dur_sec=\'([0-9]+?)\'', webpage, 'duration'))
enc_token = self._html_search_regex(
r'data-mt="(.*?)"', webpage, 'enc_token')
token = self._decode_token(enc_token)
url = 'http://x-minus.org/dwlf/{}/{}.mp3'.format(video_id, token)
return {
'id': video_id,
'title': title,
'url': url,
'duration': duration,
}
def _decode_token(self, enc_token):
token = ''
pos = 0
for c in reversed(enc_token):
if pos != 3:
token += chr(ord(c) - 1)
else:
token += c
pos += 1
return token
Loading…
Cancel
Save