Merge pull request #1 from dabiboo/universalmusicfrance

Universalmusicfrance
This commit is contained in:
dabiboo 2015-09-20 10:10:23 +02:00
commit 935b9548dc
3 changed files with 177 additions and 67 deletions

View File

@ -687,6 +687,7 @@ from .udemy import (
) )
from .udn import UDNEmbedIE from .udn import UDNEmbedIE
from .ultimedia import UltimediaIE from .ultimedia import UltimediaIE
from .universalmusicfrance import UniversalMusicFranceIE
from .unistra import UnistraIE from .unistra import UnistraIE
from .urort import UrortIE from .urort import UrortIE
from .ustream import UstreamIE, UstreamChannelIE from .ustream import UstreamIE, UstreamChannelIE

View File

@ -0,0 +1,72 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import (
compat_urllib_request,
)
from ..utils import (
urlencode_postdata,
)
class UniversalMusicFranceIE(InfoExtractor):
_VALID_URL = r'https?://www\.universalmusic\.fr/artiste/.*/videos/(?P<id>.*)#?'
_TESTS = [
{
'url': 'http://www.universalmusic.fr/artiste/7415-anna-bergendahl/videos/4555-for-you-remix-lyric-video.iframe',
'md5': '159cda7568b9fc1e5e3de6aeca5d4bfc)',
'info_dict': {
'id': '1881-waiting-for-love-lyric-video',
'ext': 'mp4',
'title': '1881-waiting-for-love-lyric-video'
}
}
,
{
'url': 'https://www.universalmusic.fr/artiste/4428-avicii/videos/1881-waiting-for-love-lyric-video#contentPart',
'md5': '159cda7568b9fc1e5e3de6aeca5d4bfc)',
'info_dict': {
'id': '1881-waiting-for-love-lyric-video',
'ext': 'mp4',
'title': '1881-waiting-for-love-lyric-video'
}
}
,
{
# from http://www.wat.tv/video/anna-bergendahl-for-you-2015-7dvjn_76lkz_.html
'url': 'http://www.universalmusic.fr/artiste/7415-anna-bergendahl/videos/4555-for-you-remix-lyric-video',
'md5': '159cda7568b9fc1e5e3de6aeca5d4bfc)',
'info_dict': {
'id': '4555-for-you-remix-lyric-video',
'ext': 'mp4',
'title': 'anna-bergendahl - for-you'
}
}
]
GET_TOKEN_URL = 'http://www.universalmusic.fr/_/artiste/video/token'
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
urlVideo = self._html_search_regex(r'var urlVideo = \'(.*)\';', webpage, 'urlVideo')
title = self._html_search_regex(r'<meta property="?og:title"? content="(.*)"/>', webpage, 'title')
request = compat_urllib_request.Request(self.GET_TOKEN_URL, urlencode_postdata({'videoUrl': urlVideo}))
request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
request.add_header('X-Requested-With', 'XMLHttpRequest')
manifest_json = self._download_webpage(request, None, note='Getting token', errnote='unable to get token')
manifestUrl = self._parse_json(manifest_json, video_id).get("video")
print(manifestUrl);
return {
'id': video_id,
'title': title,
'description': title,
'formats':
self._extract_m3u8_formats(
manifestUrl, video_id, 'mp4')
}

View File

@ -3,6 +3,8 @@ from __future__ import unicode_literals
import re import re
import hashlib import hashlib
import universalmusicfrance
import ultimedia
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
@ -15,6 +17,29 @@ class WatIE(InfoExtractor):
_VALID_URL = r'http://www\.wat\.tv/video/(?P<display_id>.*)-(?P<short_id>.*?)_.*?\.html' _VALID_URL = r'http://www\.wat\.tv/video/(?P<display_id>.*)-(?P<short_id>.*?)_.*?\.html'
IE_NAME = 'wat.tv' IE_NAME = 'wat.tv'
_TESTS = [ _TESTS = [
{
'url': 'http://www.wat.tv/video/anna-bergendahl-for-you-2015-7dvjn_76lkz_.html',
'md5': '159cda7568b9fc1e5e3de6aeca5d4bfc',
'info_dict': {
'id': '4555-for-you-remix-lyric-video',
'display_id': '4555-for-you-remix-lyric-video',
'ext': 'mp4',
'title': 'For You - Anna Bergendahl - Universal Music France',
'description': 'md5:1bbdde8d44751f43367ba68e8b9966a6'
},
},
{
'url': 'http://www.wat.tv/video/david-guetta-titanium-feat-sia-4v6p5_4v69t_.html',
'md5': '5c31a70358cd5019595297a26390cd46',
'info_dict': {
'id': 'qzkfx3',
'display_id': 'qzkfx3',
'ext': 'mp4',
'title': 'David Guetta - Titanium feat. Sia (Clip)',
'description': 'md5:bb28f8c4a84586e2eb1c3d092ab94f4b',
'upload_date': '20111220'
},
},
{ {
'url': 'http://www.wat.tv/video/soupe-figues-l-orange-aux-epices-6z1uz_2hvf7_.html', 'url': 'http://www.wat.tv/video/soupe-figues-l-orange-aux-epices-6z1uz_2hvf7_.html',
'md5': 'ce70e9223945ed26a8056d413ca55dc9', 'md5': 'ce70e9223945ed26a8056d413ca55dc9',
@ -57,6 +82,18 @@ class WatIE(InfoExtractor):
short_id = mobj.group('short_id') short_id = mobj.group('short_id')
display_id = mobj.group('display_id') display_id = mobj.group('display_id')
webpage = self._download_webpage(url, display_id or short_id) webpage = self._download_webpage(url, display_id or short_id)
srcIFrame = self._html_search_regex(r'<iframe .* src="(.*?)(.iframe)?"', webpage, 'srcIFrame')
if (srcIFrame.__contains__("universalmusic")):
#return universalmusicfrance.UniversalMusicFranceIE()._real_extract(srcIFrame);
print srcIFrame
return self.url_result(srcIFrame)
elif (srcIFrame.__contains__("ultimedia")):
mobj = re.match(r'http://www\.ultimedia\.com/deliver/musique/iframe/mdtk/[0-9]*/zone/[0-9]/article/(?P<article_id>.*?)/.*', srcIFrame)
article_id = mobj.group('article_id')
ultimedia_url = "http://www.ultimedia.com/default/index/videomusic/id/" + article_id
#return ultimedia.UltimediaIE()._real_extract(ultimedia_url)
return self.url_result(ultimedia_url)
else:
real_id = self._search_regex(r'xtpage = ".*-(.*?)";', webpage, 'real id') real_id = self._search_regex(r'xtpage = ".*-(.*?)";', webpage, 'real id')
video_info = self.download_video_info(real_id) video_info = self.download_video_info(real_id)