Increase Soundcloud downloadable track logging

fixes #343
This commit is contained in:
Eric Le Lay 2017-10-19 18:08:09 +02:00
parent 4f1b6f94fc
commit 6fb609cab4
1 changed files with 16 additions and 2 deletions

View File

@ -35,6 +35,7 @@ except ImportError:
# Python 2.6 already ships with a nice "json" module
import json
import logging
import os
import time
@ -47,6 +48,9 @@ import urllib
CONSUMER_KEY = 'zrweghtEtnZLpXf3mlm8mQ'
logger = logging.getLogger(__name__)
def soundcloud_parsedate(s):
"""Parse a string into a unix timestamp
@ -142,9 +146,19 @@ class SoundcloudUser(object):
try:
json_url = 'https://api.soundcloud.com/users/%(user)s/%(feed)s.json?filter=downloadable&consumer_key=%(consumer_key)s&limit=200' \
% { "user":self.get_user_id(), "feed":feed, "consumer_key": CONSUMER_KEY }
logger.debug("loading %s", json_url)
tracks = (track for track in json.load(util.urlopen(json_url)) \
if track['downloadable'])
json_tracks = json.loads(util.urlopen(json_url).read().decode('utf-8'))
tracks = [track for track in json_tracks if track['downloadable']]
total_count = len(tracks) + len([track for track in json_tracks
if not track['downloadable']])
if len(tracks) == 0 and total_count > 0:
logger.warn("Download of all %i %s of user %s is disabled" %
(total_count, feed, self.username))
else:
logger.info("%i/%i downloadable tracks for user %s %s feed" %
(len(tracks), total_count, self.username, feed))
for track in tracks:
# Prefer stream URL (MP3), fallback to download URL