2014-09-13 77 views
0

下載時如何獲取自動文件名?所以當我下載文件時,文件名本身自動保存着名歌曲/藝術​​家,例如:從名字(amgdgapwgd.mp3)到(Artist - Song title.mp3)。下載時替換文件名mp3

回答

0

你想要做什麼語言?另外,如果文件返回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) 
+0

這個問題解決了,我用Header做我想做的事。謝謝你的回答@JAL – 2014-09-20 02:36:01

+0

@AgusSayyupoenya如果我的答案有幫助,請將其標記爲已接受。謝謝。 – JAL 2014-09-20 15:57:45