projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[grooveshark] Fix extraction
[youtube-dl]
/
youtube_dl
/
extractor
/
soundcloud.py
diff --git
a/youtube_dl/extractor/soundcloud.py
b/youtube_dl/extractor/soundcloud.py
index f92f7fa243fcda2d61cda6aaa099a9db917897cd..9d45059723c3450a0774275ad708eed88b6e0fcb 100644
(file)
--- a/
youtube_dl/extractor/soundcloud.py
+++ b/
youtube_dl/extractor/soundcloud.py
@@
-5,11
+5,12
@@
import re
import itertools
from .common import InfoExtractor
import itertools
from .common import InfoExtractor
-from ..
utils
import (
+from ..
compat
import (
compat_str,
compat_urlparse,
compat_urllib_parse,
compat_str,
compat_urlparse,
compat_urllib_parse,
-
+)
+from ..utils import (
ExtractorError,
int_or_none,
unified_strdate,
ExtractorError,
int_or_none,
unified_strdate,
@@
-32,7
+33,7
@@
class SoundcloudIE(InfoExtractor):
(?P<title>[\w\d-]+)/?
(?P<token>[^?]+?)?(?:[?].*)?$)
|(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)
(?P<title>[\w\d-]+)/?
(?P<token>[^?]+?)?(?:[?].*)?$)
|(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)
- (?:/?\?secret_token=(?P<secret_token>[^&]+
?))?$
)
+ (?:/?\?secret_token=(?P<secret_token>[^&]+
))?
)
|(?P<player>(?:w|player|p.)\.soundcloud\.com/player/?.*?url=.*)
)
'''
|(?P<player>(?:w|player|p.)\.soundcloud\.com/player/?.*?url=.*)
)
'''
@@
-159,7
+160,7
@@
class SoundcloudIE(InfoExtractor):
# We have to retrieve the url
streams_url = ('http://api.soundcloud.com/i1/tracks/{0}/streams?'
# We have to retrieve the url
streams_url = ('http://api.soundcloud.com/i1/tracks/{0}/streams?'
- 'client_id={1}&secret_token={2}'.format(track_id, self._IPHONE_CLIENT_ID, secret_token))
+
'client_id={1}&secret_token={2}'.format(track_id, self._IPHONE_CLIENT_ID, secret_token))
format_dict = self._download_json(
streams_url,
track_id, 'Downloading track url')
format_dict = self._download_json(
streams_url,
track_id, 'Downloading track url')
@@
-179,7
+180,7
@@
class SoundcloudIE(InfoExtractor):
'format_id': key,
'url': url,
'play_path': 'mp3:' + path,
'format_id': key,
'url': url,
'play_path': 'mp3:' + path,
- 'ext':
ext
,
+ 'ext':
'flv'
,
'vcodec': 'none',
})
'vcodec': 'none',
})
@@
-199,8
+200,9
@@
class SoundcloudIE(InfoExtractor):
if f['format_id'].startswith('rtmp'):
f['protocol'] = 'rtmp'
if f['format_id'].startswith('rtmp'):
f['protocol'] = 'rtmp'
- self._sort_formats(formats)
- result['formats'] = formats
+ self._check_formats(formats, track_id)
+ self._sort_formats(formats)
+ result['formats'] = formats
return result
return result
@@
-245,6
+247,7
@@
class SoundcloudSetIE(SoundcloudIE):
_TESTS = [{
'url': 'https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep',
'info_dict': {
_TESTS = [{
'url': 'https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep',
'info_dict': {
+ 'id': '2284613',
'title': 'The Royal Concept EP',
},
'playlist_mincount': 6,
'title': 'The Royal Concept EP',
},
'playlist_mincount': 6,
@@
-278,7
+281,7
@@
class SoundcloudSetIE(SoundcloudIE):
return {
'_type': 'playlist',
'entries': [self._extract_info_dict(track, secret_token=token) for track in info['tracks']],
return {
'_type': 'playlist',
'entries': [self._extract_info_dict(track, secret_token=token) for track in info['tracks']],
- 'id': info['id'],
+ 'id':
'%s' %
info['id'],
'title': info['title'],
}
'title': info['title'],
}
@@
-371,7
+374,7
@@
class SoundcloudPlaylistIE(SoundcloudIE):
entries = [
self._extract_info_dict(t, quiet=True, secret_token=token)
entries = [
self._extract_info_dict(t, quiet=True, secret_token=token)
-
for t in data['tracks']]
+ for t in data['tracks']]
return {
'_type': 'playlist',
return {
'_type': 'playlist',