projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #7320 from remitamine/adobetv
[youtube-dl]
/
youtube_dl
/
extractor
/
tapely.py
diff --git
a/youtube_dl/extractor/tapely.py
b/youtube_dl/extractor/tapely.py
index 2c1178b1baedd592cabff19d386a836ab4f2aa1a..ed560bd246f4e588b9d63be4dcc0f34388d46f89 100644
(file)
--- a/
youtube_dl/extractor/tapely.py
+++ b/
youtube_dl/extractor/tapely.py
@@
-5,18
+5,19
@@
import re
from .common import InfoExtractor
from ..utils import (
from .common import InfoExtractor
from ..utils import (
- ExtractorError,
clean_html,
clean_html,
-
compat_urllib_request
,
+
ExtractorError
,
float_or_none,
parse_iso8601,
float_or_none,
parse_iso8601,
+ sanitized_Request,
)
class TapelyIE(InfoExtractor):
)
class TapelyIE(InfoExtractor):
- _VALID_URL = r'https?://(?:www\.)?
tape\.ly
/(?P<id>[A-Za-z0-9\-_]+)(?:/(?P<songnr>\d+))?'
+ _VALID_URL = r'https?://(?:www\.)?
(?:tape\.ly|tapely\.com)
/(?P<id>[A-Za-z0-9\-_]+)(?:/(?P<songnr>\d+))?'
_API_URL = 'http://tape.ly/showtape?id={0:}'
_S3_SONG_URL = 'http://mytape.s3.amazonaws.com/{0:}'
_API_URL = 'http://tape.ly/showtape?id={0:}'
_S3_SONG_URL = 'http://mytape.s3.amazonaws.com/{0:}'
+ _SOUNDCLOUD_SONG_URL = 'http://api.soundcloud.com{0:}'
_TESTS = [
{
'url': 'http://tape.ly/my-grief-as-told-by-water',
_TESTS = [
{
'url': 'http://tape.ly/my-grief-as-told-by-water',
@@
-39,6
+40,10
@@
class TapelyIE(InfoExtractor):
'ext': 'm4a',
},
},
'ext': 'm4a',
},
},
+ {
+ 'url': 'https://tapely.com/my-grief-as-told-by-water',
+ 'only_matching': True,
+ },
]
def _real_extract(self, url):
]
def _real_extract(self, url):
@@
-46,9
+51,10
@@
class TapelyIE(InfoExtractor):
display_id = mobj.group('id')
playlist_url = self._API_URL.format(display_id)
display_id = mobj.group('id')
playlist_url = self._API_URL.format(display_id)
- request =
compat_urllib_request.
Request(playlist_url)
+ request =
sanitized_
Request(playlist_url)
request.add_header('X-Requested-With', 'XMLHttpRequest')
request.add_header('Accept', 'application/json')
request.add_header('X-Requested-With', 'XMLHttpRequest')
request.add_header('Accept', 'application/json')
+ request.add_header('Referer', url)
playlist = self._download_json(request, display_id)
playlist = self._download_json(request, display_id)
@@
-68,9
+74,15
@@
class TapelyIE(InfoExtractor):
})
entries.append(entry)
elif song['source'] == 'YT':
})
entries.append(entry)
elif song['source'] == 'YT':
- _, _, yt_id = song['filename'].split('/')
+ self.to_screen('YouTube video detected')
+ yt_id = song['filename'].replace('/youtube/', '')
entry.update(self.url_result(yt_id, 'Youtube', video_id=yt_id))
entries.append(entry)
entry.update(self.url_result(yt_id, 'Youtube', video_id=yt_id))
entries.append(entry)
+ elif song['source'] == 'SC':
+ self.to_screen('SoundCloud song detected')
+ sc_url = self._SOUNDCLOUD_SONG_URL.format(song['filename'])
+ entry.update(self.url_result(sc_url, 'Soundcloud'))
+ entries.append(entry)
else:
self.report_warning('Unknown song source: %s' % song['source'])
else:
self.report_warning('Unknown song source: %s' % song['source'])