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