为了防止分享链接被恶意举报,一些资源提供者开始使用秒传链接形式进行分享。本文探索了秒传链接提取的原理,并介绍了简单的用法。

如何使用

关于原理的部分请跳到下一节。
安装扩展及脚本(1、2均为必选,非二选一)
安装扩展组件(必选)对于 Chrome 及同内核的套壳浏览器,请安装Tampermonkey扩展。对于 FireFox 浏览器,可以安装Tampermonkey扩展或Greasemonkey,推荐前者。
油猴组件允许你在浏览器中插入额外的 js 代码来自由定义网页显示与运行方式,同时提供常用接口封装,利于开发。安装油猴脚本(必选)
目前常用的秒传提取脚本为mengzonefire-秒传链接提取。点击链接后,在页面中点击安装即可。
注意点击安装后油猴扩展会弹出是否安装的提示,点击安装即可。
提取链接
在登陆的状态下访问pan.baidu.com,在网盘工具栏处会有一个秒传链接按钮:
点击该按钮,粘贴秒传链接并点击确定即可。

原理

我有一个以 de0276e5f63e27f6604903727c299e7d 开头的秒传链接,它是如何被使用的呢?首先看一下该链接全貌:
de0276e5f63e27f6604903727c299e7d#1f5cfb6422675ae224739b496c3ea54c#202703879#/mirrornorabbit2.zip
Text
在该链接中,以#号分隔分成四部分:
文件 MD5前256 KiB MD5文件大小(字节,B)文件名
我们都知道对于相同的文件,百度网盘并不会为每个用户单独存储一个副本,即服务器上只保留一份该文件。
用户删除文件时,网盘仅删除了该用户对于此文件的访问权限,实体文件并没有被删除,这也就是为啥我们上传时会有“秒传”的情况。
百度网盘秒传的原理就是验证上面的两个 MD5 和文件大小,如果一致,即执行转存操作。当然这不是我胡说,因为在百度 PCS 的API 列表中有如下描述:
由于接口权限及其他方面的问题,我们常用的转存脚本并没有使用 rest api 接口,而是直接使用百度网盘 web 端自用接口。验证该接口非常简单,随便找个共享文件在 web 版百度网盘上传并监视 network 即可:
综上所述,秒传链接就是利用了百度网盘秒传接口,将必要参数保存为特定格式的字符串,达到分发与转存的目的。
目前常见的有好几种秒传链接格式,但他们都大同小异,解码后都是相同的参数。