城通网盘下载加速方案

前言

最近准备再补充一点音乐,但是很多音乐分享都在城通网盘,然后我就发现现在的网盘一个比一个恶心。

城通网盘可以说比百度网盘还要恶心,速度就可怜的几十kb,百度网盘平均还有个200kb/s左右呢。。。

只能试着找找看有没有科技狠活了,别说,还真有~

不过这种方法也只能达到2M/s,不过对我来说已经完全足够了。

方案

先贴链接:GitHub - nekohy/ctfile-downloader: 城通网盘破解限速-绕过线程限制

不用自己部署,直接访问现成的网站进行解析即可: 城通网盘下载器

第一步:获取下载地址

打开需要下载的文件,点击【客户端下载】,此时会弹出对应的 ctfile://xxxxxx 地址:

第二步:解析

访问城通网盘下载器,并将上述地址粘贴进去进行解析:

第三步:下载

将解析出来的地址粘贴到下载工具中进行下载即可,还支持断点续传。

这边推荐使用【Motrix】,下载直接跑完2M/s,使用【IDM】的话只有800kb/s左右,其他下载工具未试。

最后

要说现在网盘哪个好,注重隐私和体验来说,我其实还是推荐 OneDrive,但是国内确实局限性比较大,其次是 夸克网盘,非高峰时间段(白天上班时间及深夜凌晨)下载也给40Mb/s,其他一个都不推荐。


补充

最近网友们反馈作者提供的网站经常有密码,可能是使用的人多了就做了限制。

这边再补充一种我觉得更简单的方法:

城通网盘命令行下载工具

GitHub - ericwang2006/ctfile-cli: 一个跨平台的城通网盘(CTfile)命令行下载工具,支持高速多线程下载。

使用方法:

从 Releases 页面下载适合你系统的预编译版本,在相应的目录打开终端:

./ctfile-cli ctfile://<xtlink>

这个方法比上面讲的更佳简单高效。287M的文件下载就2分钟多点。

推荐使用这种方法!


鉴于上面的两种方法时不时无法使用,只能自己动手来搞定这个事情。

该方法不适用于所有人,需要有一定网络基础以及动手能力的人!

自己动手方案

一、需求

  1. Github账号

  2. 域名,可以托管到Cloudflare的免费域名即可(如果没有的话,即使部署成功了,国内也无法访问)

  3. 很多个城通网盘的账号(需要自己注册)

  4. 虚拟机或者服务器(可选,前端页面需要)

为什么需要很多个账号?

可以理解为:城通网盘对每个账号的下载速度有限制,但它不会限制你从多个账号同时下载:

  • 每个 token 是一个独立的会话

  • 多个 token 可以并发请求同一个文件的不同部分

  • 后端将这些部分拼接成完整文件返回给用户

这类似于迅雷的“多线程下载”原理,只不过这里是“多账号下载”。

也就是说,一个账号的 token 速度是 100kb/s,那么十个账号加起来就可以达到 1000kb/s。这就是这个应用的本质,因此部署这个项目费时费力,也就造成了维护起来也麻烦。

二、后端部署

知道了理论,我们进行实践:

1.获取Token

在终端通过以下命令获取:

curl -X POST 'https://rest.ctfile.com/p2/user/auth/login' -H 'User-Agent: okhttp/4.9.2' -H 'Content-Type: application/json' -d '{
  "token": null,
  "username": "邮箱",
  "password": "密码",
  "app_version": "3.7.6"
}' -k

得到 token 的值:

多个账号,获取多个 token 保存下来。

2.Fork仓库

访问项目:GitHub - nekohy/ctfile-downloader: 城通网盘破解限速-绕过线程限制,点击Fork,接着创建即可。

3.配置token

上一步完成后会跳转到fork下来的仓库,进入 src 文件夹,点击 token.ts.example 文件,再点击编辑按钮,将里面的内容替换为获取到的 token 值,格式为:

export const TOKENS: string[] = [
  "token1",
  "token2",
  "token3"
];

由于我演示就使用自己账号的一个token了,将文件名最后的 .example 删除后保存:

至此,GitHub这边完成了。

4.Cloudflare部署

访问 Cloudflare官网 登陆并且绑定域名。(这边不多赘述了,网上很多教程)

来到 【Workers & Pages】栏目,点击 Create application,接着选择【从Github存储卡导入】:

选择刚刚fork下来的项目:

名称随意,点击底部的【创建并部署】,等待几十秒部署完成:

来到【设置】页面,添加自定义域,也就是使用自己的域名,自己的域名可以在国内访问,它默认给的域名国内应该是无法访问的,我没做测试,不确定。

在你的域名后面加上 /meow ,看看是否有输出,有输出说明这一步部署成功:

二、前端部署 (可省略,直接跳到下一步)

前端页面项目: GitHub - nekohy/ctfile-downloader-panel

这一步在虚拟机或者服务器上操作:

确保虚拟机已经安装了 nodejs ,并运行以下命令:

git clone https://github.com/Nekohy/ctfile-downloader-pane  #将项目下载到设备
cd ctfile-downloader-pane  #进入项目文件夹
npm install -g pnpm  #安装pnpm包管理器

接着创建一个名为 .env.local 到环境变量

vim .env.local

该文件内容为:

NEXT_PUBLIC_API_URL=https://xxx.xxxx.org  #后端的URL

接着继续输入以下命令:

pnpm install  #安装依赖
pnpm dev  #运行项目

输出如下:

说明启动成功了。

现在可以访问这个地址进行解析下载了。

三、纯后端获取解析地址

第二步要求相对比较高,在不配置前端页面的时候,我们可以使用以下方法进行解析。

在第一步我们配置好的后端地址假设为:http://ctfile.xxx.org

只需在电脑的终端输入以下命令:

curl "http://ctfile.xxx.org/download_info?xtlink=ctfile://城通网盘分享链接"

获取该分享链接下的文件信息:

得到的 key 值就是要传给 /download 接口的 file_id

也就是解析出来的下载链接为:

http://ctfile.xxx.org/download?xtlink=ctfile://城通网盘分享链接&file_id=f1363308469

说明:

  • 获取文件信息:使用 /download_info? 接口

  • 下载文件:使用 /download 接口,并且在链接后面添加指定文件 &file_id=<key的值>

测试

因为我电脑没有下载工具,而且我是用一个token部署的,就直接用系统的终端下载测试(不支持多线程),显示的就是正常单账号的下载速度,多个账号就不测试了。懒~

方法教给大家了,大家可以尝试部署一下。

没有金钱成本,就是时间成本比较大。一步步走也不难的。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部
0
希望看到您的想法,请您发表评论x