0
下載時如何獲取自動文件名?所以當我下載文件時,文件名本身自動保存着名歌曲/藝術家,例如:從名字(amgdgapwgd.mp3)到(Artist - Song title.mp3)。下載時替換文件名mp3
下載時如何獲取自動文件名?所以當我下載文件時,文件名本身自動保存着名歌曲/藝術家,例如:從名字(amgdgapwgd.mp3)到(Artist - Song title.mp3)。下載時替換文件名mp3
你想要做什麼語言?另外,如果文件返回downloadable
等於true,則該文件應具有正確的名稱。
例子:
https://soundcloud.com/msmrsounds/ms-mr-hurricane-chvrches-remix
從JSON:
"download_url": "https://api.soundcloud.com/tracks/90787841/download"
鏈接到本文件:Hurricane (CHVRCHES remix).wav
的stream_url
MP3不返回正確命名的文件。下面是我剛剛寫的一個小Python腳本,用於從API獲取曲目名稱並下載帶有該文件名的流式文件。只需將網址變量替換爲您希望下載的音軌的soundcloud.com網址即可。
import json, requests
url = 'https://api.soundcloud.com/resolve.json'
your_client_id = '[PUT YOUR client_id HERE]'
params = dict(
url='https://soundcloud.com/msmrsounds/ms-mr-hurricane-chvrches-remix',
client_id=your_client_id,
)
# resolve
resp = requests.get(url=url, params=params)
data = json.loads(resp.text)
# get api url
track_url = data.get('location')
track_resp = requests.get(url=url, params=params)
track_data = json.loads(resp.text)
# get stream_url
track_title = track_data.get('title')
stream_url = track_data.get('stream_url')
print track_title
print stream_url
stream_params = dict(
client_id=your_client_id,
)
stream_resp = requests.get(url=url, params=params)
# pass in title + '.mp3' for filename
with open(track_title + '.mp3', 'wb') as handle:
response = requests.get(url=stream_url, params=stream_params, stream=True)
if not response.ok:
# Something went wrong
print 'Error downloading mp3'
for block in response.iter_content(1024):
if not block:
break
handle.write(block)
這個問題解決了,我用Header做我想做的事。謝謝你的回答@JAL – 2014-09-20 02:36:01
@AgusSayyupoenya如果我的答案有幫助,請將其標記爲已接受。謝謝。 – JAL 2014-09-20 15:57:45