如何在bash脚本中下载带有访问令牌的私有Soundcloud轨道
发布时间:2020-12-16 01:58:21 所属栏目:安全 来源:网络整理
导读:我用以下 python代码生成了一个Soundcloud轨道id的列表: import soundcloudimport urllibclient = soundcloud.Client(client_id='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',client_secret='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',username='XXXXXXXXXXXXXXXXXXXXXXXX
我用以下
python代码生成了一个Soundcloud轨道id的列表:
import soundcloud import urllib client = soundcloud.Client(client_id='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',client_secret='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',username='XXXXXXXXXXXXXXXXXXXXXXXXXX',password='XXXXXXXXXXXXXXXXXX') f=open('soundcloud-track-ids','w+') count = 0 while count < 6000: tracks = client.get('/me/tracks',limit=200,offset=count) for track in tracks: print >>f,track.id,"t",track.title .encode('utf-8') count += 200 f.close() 然后我运行一个bash脚本将整个存档备份到硬盘驱动器的内容: #!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "nb") while read line; do if [ ! -f /mnt/drobo_1/Soundcloud/$(echo $line | cut -f 2- | sed 's,/,,g').mp3 ]; then wget https://api.soundcloud.com/tracks/"$(echo $line | awk '{print $1}')"/download?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -O /mnt/drobo_1/Soundcloud/"$(echo $line | cut -f 2- | sed 's,g').mp3" fi done < ./soundcloud-track-ids IFS=$SAVEIFS 几乎所有的5317首曲目都是私有的,而且大多数都是没有问题的下载,但是大约有600首曲目无法下载,并出现以下错误: --2015-01-05 12:46:09-- https://api.soundcloud.com/tracks/152288957/download?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Resolving api.soundcloud.com (api.soundcloud.com)... 93.184.220.127 Connecting to api.soundcloud.com (api.soundcloud.com)|93.184.220.127|:443... connected. HTTP request sent,awaiting response... 404 Not Found 2015-01-05 12:46:10 ERROR 404: Not Found. 有谁知道错误是什么? 解决方法
这404错误表明在SoundCloud结束时无法找到该文件.这可能是SoundCloud的速率限制器这样做,防止你如此锤击它.
见https://developers.soundcloud.com/docs/api/terms-of-use#quotas 如果您稍后尝试这些失败的下载,它们是否有效? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |