fix: 404 error

Thanks @Spotlight0xff
master
flyingrub 2015-04-08 23:51:08 +02:00
parent f504734535
commit e68118bc95
2 changed files with 22 additions and 3 deletions

View File

@ -1,5 +1,6 @@
"""Python Soundcloud Music Downloader."""
__version__ = 'v1.1.0'
__version__ = 'v1.2'
import os

View File

@ -44,6 +44,7 @@ import soundcloud
import wget
import urllib.request
import json
from requests.exceptions import HTTPError
import mutagen
@ -342,6 +343,20 @@ def download_all(tracks):
download_track(track)
def alternative_download(track):
track_id = str(track.id)
url = 'http://api.soundcloud.com/i1/tracks/' + track_id + '/streams?client_id=a3e059563d7fd3372b49b37f00a00bcf'
res = urllib.request.urlopen(url)
data = res.read().decode('utf-8')
json_data = json.loads(data)
try:
mp3_url = json_data['http_mp3_128_url']
except KeyError:
log('http_mp3_128_url not found in json response, report to developer.', strverbosity=0)
mp3_url = None
return mp3_url
def download_track(track, playlist_name=None):
"""
Downloads a track
@ -349,7 +364,11 @@ def download_track(track, playlist_name=None):
global arguments
if track.streamable:
stream_url = client.get(track.stream_url, allow_redirects=False)
try:
stream_url = client.get(track.stream_url, allow_redirects=False)
url = stream_url.location
except HTTPError:
url = alternative_download(track)
else:
log('%s is not streamable...' % (track.title), strverbosity=0)
log('', strverbosity=1)
@ -367,7 +386,6 @@ def download_track(track, playlist_name=None):
if filename[0] == '"' or filename[0] == "'":
filename = filename[1:-1]
else:
url = stream_url.location
invalid_chars = '\/:*?|<>"'
if track.user['username'] not in title and arguments["--addtofile"]:
title = track.user['username'] + ' - ' + title