support theartistunion.com

archive/recovered-github-prs
io mintz 4 years ago
parent 3d6a47d35f
commit 2a011bb1f6

@ -1158,6 +1158,7 @@ from .tenplay import TenPlayIE
from .testurl import TestURLIE from .testurl import TestURLIE
from .tf1 import TF1IE from .tf1 import TF1IE
from .tfo import TFOIE from .tfo import TFOIE
from .theartistunion import TheArtistUnionIE
from .theintercept import TheInterceptIE from .theintercept import TheInterceptIE
from .theplatform import ( from .theplatform import (
ThePlatformIE, ThePlatformIE,

@ -0,0 +1,79 @@
# coding: utf-8
from __future__ import unicode_literals
import re
from .common import InfoExtractor
from ..utils import determine_ext, unified_timestamp
class TheArtistUnionIE(InfoExtractor):
_VALID_URL = r'https://theartistunion.com/tracks/([0-9a-f]{6})'
_TEST = {
'url': 'https://theartistunion.com/tracks/f12c01',
'md5': 'b8e48aa5aec70c46f7a5493f51559c8c',
'info_dict': {
'id': 'f12c01',
'ext': 'mp3',
'title': "The Grand Sound pres. 'Night Drive' - Relaxing Deep House & Progressive House Mix",
'thumbnail': 'https://d2tml28x3t0b85.cloudfront.net/tracks/audio/original_artwork/da2fdc80248911e99afa516bbf6a0ff9/df4dd410248911e992f02f67adc0a722.jpg',
'uploader': 'The Grand Sound',
'uploader_id': 'thegrandsound',
'uploader_url': 'https://theartistunion.com/thegrandsound',
'timestamp': 1549044071,
'upload_date': '20190201',
'formats': [{
'url': 'https://content.theartistunion.com/tracks/audio/stream_encode/da2fdc80248911e99afa516bbf6a0ff9/The-Grand-Sound-pres.-_Night-Drive_---Relaxing-Deep-House-_-Progressive-House-Mix.mp3',
'format_id': 'stream_encode',
'priority': -2,
}, {
'url': 'https://content.theartistunion.com/tracks/audio/:original/da2fdc80248911e99afa516bbf6a0ff9/The-Grand-Sound-pres.-_Night-Drive_---Relaxing-Deep-House-_-Progressive-House-Mix.mp3',
'format_id': 'original',
}],
}
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
track_id = mobj.group(1)
orig_info = self._download_json(
'https://theartistunion.com/api/v3/tracks/{}.json'.format(track_id),
track_id)
# not using safe methods of getting info from the dict because this field is required
info = {
'id': track_id,
'ext': determine_ext(orig_info['audio_source']),
}
info['formats'] = [{
'url': orig_info['audio_source'],
'format_id': 'stream_encode',
'priority': -2,
}, {
'url': orig_info['audio_source'].replace('/tracks/audio/stream_encode/', '/tracks/audio/:original/'),
'format_id': 'original',
}]
for source, dest in [
('original_artwork', 'thumbnail'),
('artist_name', 'uploader'),
('artist_username', 'uploader_id'),
('title', 'title'),
]:
try:
info[dest] = orig_info[source]
except KeyError:
pass
try:
info['uploader_url'] = 'https://theartistunion.com/' + orig_info['artist_username']
except KeyError:
pass
try:
info['timestamp'] = unified_timestamp(orig_info['published_at'])
except KeyError:
pass
return info
Loading…
Cancel
Save