Skip to content

Commit 28f66f4

Browse files
Merge pull request #26 from Keeper-of-the-Keys/soundcloud-permissions
Added proper support for soundcloud permissions as discussed here:
2 parents 4de9773 + 363fe42 commit 28f66f4

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/gpodder/plugins/soundcloud.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def get_tracks(self, feed):
122122
global CONSUMER_KEY
123123

124124
json_url = ('https://api.soundcloud.com/users/%(user)s/%(feed)s.'
125-
'json?filter=downloadable&consumer_key=%'
125+
'json?consumer_key=%'
126126
'(consumer_key)s&limit=200'
127127
% {"user": self.get_user_id(),
128128
"feed": feed,
@@ -131,12 +131,16 @@ def get_tracks(self, feed):
131131
logger.debug('get_tracks url: %s', json_url)
132132

133133
json_tracks = json.loads(util.urlopen(json_url).read().decode('utf-8'))
134-
tracks = [track for track in json_tracks]
134+
tracks = [track for track in json_tracks if track['streamable'] or track['downloadable']]
135135

136136
for track in tracks:
137137
# Prefer stream URL (MP3), fallback to download URL
138-
url = track.get('stream_url', track['download_url']) + \
139-
'?consumer_key=%(consumer_key)s' % {'consumer_key': CONSUMER_KEY}
138+
base_url = track.get('stream_url') if track['streamable'] else track.get('download_url')
139+
if base_url != None:
140+
url = base_url + '?consumer_key=%(consumer_key)s' % {'consumer_key': CONSUMER_KEY}
141+
else:
142+
logger.debug('Skipping track with no base_url')
143+
continue
140144

141145
logger.debug('track in tracks url: %s', url)
142146

0 commit comments

Comments
 (0)