使用开发者接口下载的百度网盘资源是不限速的, 不过有频率控制
下载步骤
百度网盘接口下载方式是 get 请求, 直接参数是
- access_token –> 你的访问令牌
- User-Agent –> 请求对象, 固定为 pan.baidu
其他说明 :
1. 通过【列表类接口】获取文件的fsid。
2. 通过【取文件信息filemetas接口】获取文件的下载地址,即接口返回的dlink字段
3. 使用dlink下载文件
4. dlink有效期为8小时
5. 必需要设置User-Agent字段
6. dlink存在302跳转
意思是你必须经过如下几个步骤才可以完成下载
- 先得下载通过文件列表接口, 获取到你的文件的 fsid
- 接着, 通过 fsid , 查询文件的信息, 得到下载地址dlink
- 然后你就可以通过dlink下载啦
大概是这个步骤, 接下来我们演示完整的下载流程
完整下载流程
1.先获取access_token, 使用简化授权快速获得, 输入你的client_id, 然后在响应的url中获取你的access_token
https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=YOUR_CLIENT_ID&redirect_uri=oob&scope=basic,netdisk&display=popup&state=xxx
2.获取文件的fsid, 使用下面这个地址, 其中dir是目录,key是文件名
https://pan.baidu.com/rest/2.0/xpan/file?dir=/test&access_token=YOUR_TOKEN&web=1&page=1&num=2&method=search&key=mmexport
3.查询文件信息, 获得下载链接dlink, 需要给一些fsids, 如果仅有一个fid, 把%5B和%5D去掉, 换成[]把fsid包裹起来, 多个fsid用,隔开
https://pan.baidu.com/rest/2.0/xpan/multimedia?access_token=YOUR_TOKEN&method=filemetas&fsids=%5B414244021542671,YOUR_FSID%5D&thumb=1&dlink=1&extra=1
4.得到dlink,要进行一些修改, 把 \u0026 替换为 & ,这时这个dlink才是有效的,配合curl即可下载
curl -L -X GET 'YOUR_DLINK&access_token=YOUR_TOKEN' \
-H 'User-Agent: pan.baidu.com' YOUR_TOKEN
你可以通过修改浏览器的 user-agent, 直接使用浏览器下载也是可以的
实现下载方式并不止这一种, 以上仅仅只是模拟, 通过这个过程, 我们了解到 :
- access_token有效期1个月
- fs_id是文件的唯一标识, 不会改变
- dlink有效期为8小时
实际开发中, 配合数据库, 上传时, 记住文件的fsid, 这样就可以通过程序实现直接下载啦.
更多资料, 请查看百度网盘开发者手册