Rat's

CTList:一个可以绑定多个天翼云网盘的目录列表程序,支持视频播放
说明:之前介绍过很多OneDrive和Google Drive网盘目录列表程序,但在国内使用的话,网络速度都不理想...
扫描右侧二维码阅读全文
14
2020/04

CTList:一个可以绑定多个天翼云网盘的目录列表程序,支持视频播放

说明:之前介绍过很多OneDriveGoogle Drive网盘目录列表程序,但在国内使用的话,网络速度都不理想。最近使用天翼云网盘的人开始多了起来,在国内使用的话,速度还是很不错的,毕竟由电信骨干网支持,国内AWS为文件实际储存节点,基本上速度都是秒开,当然,看片也是无需等待,这里萌咖大佬就写了个天翼云网盘的目录列表程序CTList,安装也是十分简单,和博主之前介绍的OneList差不多,整个站点目录支持在nPlayer播放器中使用,之前通过BUG撸的30T和老用户10T2T空间的都可以利用一下,对于新用户,现在默认30G空间,但经常有送容量的活动,这里就说下安装方法。

截图

请输入图片描述
请输入图片描述

更新

【2021.07.30】
1、修复因天翼更换登陆接口造成登录失败的问题,直接从github下载文件覆盖即可

【2021.06.01】
1、适配kodi(WebDAV)
2、优化性能

【2020.05.10】
优化文件访问/下载速度,已安装过的建议更新下,最新版地址:https://github.com/iiiiiii1/CTList。

【2020.04.23】
1、改善cookies保活机制
2、增加强制HTML/WebDAV配置项
3、加快资源释放

【2020.04.20】
现在开始停止送码,基本上留过言的都送了,项目暂时不会开发新功能,遇到BUG的留言即可。

【2020.04.19】
修复部分BUG,已使用上的可以进行更新修复

【2020.04.15】
该项目暂时关闭,重新补发30个码,安装了未激活的或者已用的可以继续激活使用。

功能

  • 支持多账户
  • 支持显示文件夹大小
  • 支持每天自动签到
  • 支持异步缓存
  • 支持隐藏指定文件夹和文件
  • 支持整个目录,单层目录或单文件访问加密
  • 支持展示任意目录,自定义根目录
  • 支持只读挂载到PotPlayer(WebDAV), nPlayer(WebDAV),kodi(WebDAV)

申请码

提示:获取到授权码后,只能和绑定的账号一起用,在任意服务器都可以安装使用。

CTList Apply Token申请码:

#2020.4.14
2674253DF2154B5A00F5DF05756E7652
9D0B2F6DFA114276DD9A954E6F9948DA
6190D9FF0597748CF164899045D4E210
B2329E6485CD5B7694D0719BF958131E
65F0062A94F68E0179B244D636D89BCD
61683B9642E04DFF0B9353E2E990FF32
231676C503495F33E738C64E791064E9
A656DF714A20A0D2D5E279D16983AB33
D81B56EFA750E69A9AB5EE131F56E4F1
A5177158C8FC44FB8D177B22684954F1
A14519C669990E611F06F5239B0690D2
43A81E7BE5AD2369DA81B7B31FBB4F69
28C3EBC5CB06A6CA9F0BE2F7A42D6F4A
C9E223825FD750FAD4FFEF2F5BBB603E
D77462297AF7F3C333770CAFA7A99CBB
0A65F0E3C54D01502AE1D987BEA1EF89
BDC77BE0C3C504CBC6861D19654ACAF9
D87CF362094468706A7C96F4CE190862
629B180D9AA05B340EFB140B796BF4FD
60EF6F6B8FF478F06EBBA5F8D097786F
1C0A10B53D249A276C9BEDEF98E5F9A3
BFD242F9E7E2E861AAC2C7C3AFF05418
4075B20EBCBFDEBD2B7341327E4D7A95
44CD247E86EF17BFB850A1ED1F29B868
832749B873F8B3AB20271FAA9CBD108E
C0FBDC73C6445660753173E4904270C7
A85895DCB7281C9A5C97B6BEC8F24525
064C591C151D8F14000E975E61FC606E
7E09D3E6C88FD1E40D75DDA0A86BDD26
8AC4C583974E70256E1B6F994947768C

#2020.4.15新增
619A60E465F6384E6E612A39E9792A02
76F3BCD10C053DE6F590E988B5794B73
3E3B5E2EBF9B7283E4D83BD6E7A22A4D
E016F9D4E7151252978396750464B7A6
BFDBAFAC6555D3D684808C79EEC89CD7
5C5C8313311ECC9AA2CE2124D7BEDE08
9A5CA3744DCD93399C0208D8F080A345
D0378BA424E024D9A7E6AFEDCF072892
2482219C2DB38A28B693C83123ECD330
1650CE4BA08450B3069877D3196CA580
C697525F70C3573A3BFFC35A593C882B
4010DB574F9E8BC6FCE699F7EED69291
912185D9CC84F7D88079408A4C315B05
C20341E5B58D429D96A95E4129D5F853
ADA16FC3CC9791041187E8E3DA734D2E
56CA0807F24FC7BF005CA61E59A3E562
18EDA147D328AE8E715FDEF465216672
7B3E000B3EA890C76620CB3F749DFD07
135EE1FDE7B0478E8816CFB8A707FDED
651CFE6712CC68CAB511854E5FC96B04
E7008EEC4B54ED547C3A401B6E9ACB10
8390CFC71D159058615798F55D4D4D6D
2E7C42E0D395B7D66DEE2C6A80116BF4
4C9F2B93B501653308970BB20E556A1D
4D48D713CE4D552955905E5A4E78C7AD
4438DC2F531054A9279A1745FF582530
E154D7F9A7D5A3B493D642C394A38640
976130C15FE5D932F8FF86C0E54F671C
CD0A3D8DB4079DFDF51802019D8EB95D
240EF1812AE40B5F494A4134E0F309B4
FF949E15A4BBD497C276497337266481
B79DDA22666B855CED75218526998BF9
F279A5404431D34A5320D15247ED4E32
DA56FAF28AA55EB3F2C27FE22BAC6443
0123798B2BFAF5648E76ADD6D37A8A99
EDD59DCE9717DEF0684B44AA55F3220D
25DFE5E6FD05E61EC3FDEC2596B89268
428AE41787E4E40CA81D3C9BD68A7B60
D1635D178945D06825F69DCD6FE8E521
11A8CC190EB8426E21D478FC21949AF3

#2020.4.23新增
1D15BC7C9D1F144389A2B75FCCE8E4EE
941E7C1D8564D0B6BB38D4183EB2AAD4
3B48BBF789A9481A53C0EFC5C6E88C96
8046CF262FF4488553CE9AB6FC5A2ED7
B402B08B8386F612D7A087136F3029DF
7FD3ADFDEADEF2B184538B5244CF5096
35E86A05763C3F10A6C9D4FB9423000A
3A60EE7341E2D17E228E8D541AE19B5F
329586545FEA6221827F95EC39377CAA
6C519BA5CB4CD3F0BE5C00D9B679D329

#2020.4.25新增
205D21D3B34F479D0F64E1F1C5DC9647
95BFADD620483E7D6BB7B8D7957E8262
587BA47676352B4F9E11925E47937782
98DFD8A200050BE7D9A8DC7BBEE1FF5E
1E0BFF9D6D598FF146475A641725C63C
4A9ACDA1F26DA156E34D7AF2CDBD3FA3
20F1F9C98A487369745DD9EDC5B8ABC0
C051441120C80489412E40C6069980B5
3DCE9DF07BFCEE09A4EE17AC35B973E1
993011668DA5D80ACD8BDCDEDABF8DD2

安装

Github地址:https://github.com/MoeClub/CTList

这里只详细说下Linux的用法,WindowsMacOS系统二进制文件下载地址→传送门,使用方法和Linux都差不多。

1、申请天翼账号
老用户就不用申请了,新用户点击→传送门,选择短信验证码登录即可,这里联通、移动手机号都可以登录注册。

2、安装CTList

#新建并进入CTList目录
mkdir /opt/CTList && cd $_

#64位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/amd64/linux/CTList
#32位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/i386/linux/CTList
#arm架构下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/arm/linux/CTList

#给予权限
chmod +x CTList

3、下载配置文件

#下载配置文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/config.json
#下载默认的主题文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/index.html

这里提供2款可在线浏览图片,在线观看视频等其他功能的主题文件→传送门,直接下载index.html文件,覆盖即可。

4、编辑配置文件
编辑配置文件config.json,大致说明如下:

[
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    }
]

如果没啥特殊需求,只需要填写账号密码即可即前4项,且CaptchaMode后面将0改为https://api.moeclub.org/SampleCode用于识别登陆验证码,如果使用期间有修改过配置文件,需要重启CTList

5、调高limits
这里调整下limitslinux下可能由于高并发情况下会出错,使用命令:

[ -f /etc/security/limits.conf ] && LIMIT='262144' && sed -i '/^\(\*\|root\)[[:space:]]*\(hard\|soft\)[[:space:]]*\(nofile\|memlock\)/d' /etc/security/limits.conf && echo -ne "*\thard\tmemlock\t${LIMIT}\n*\tsoft\tmemlock\t${LIMIT}\nroot\thard\tmemlock\t${LIMIT}\nroot\tsoft\tmemlock\t${LIMIT}\n*\thard\tnofile\t${LIMIT}\n*\tsoft\tnofile\t${LIMIT}\nroot\thard\tnofile\t${LIMIT}\nroot\tsoft\tnofile\t${LIMIT}\n\n" >>/etc/security/limits.conf

windows系统下不需要调。

6、启动CTList
这里启动改成了授权模式,需要申请码获取授权码,获取授权码→传送门Apply Token和用户名即手机号必填,且一个申请码只能绑定一个天翼云账号,绑定多个账号需要在同样的授权码上绑定其它账号。

#申请码使用提示
[Success]: 绑定成功.
[Query Mode]:查询模式, 查询授权码. 申请码已经被使用.
如果没有有效授权的用户, 运行程序时会出现Error! No Valid User.

这里如果你想支持下萌咖大佬,可以前往萌咖杂货店→传送门,选择捐赠 #11即可。

获取到授权码后开始启动CTList

#直接运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000

#后台运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000 -d

AUTH_TOKEN为获取到的授权码,8000为访问端口,运行前自行修改。

启动了后,就可以使用ip:8000/CTList访问程序了,后面为SubPath参数路径,自行修改。

如果你访问不了程序,可能要检查下防火墙端口,有安全组的也要放行下相关端口。

这里提供个CentOS系统防火墙开启命令,比如开放8000端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload

7、开机自启
这里新建一个简单的systemd配置文件,适用CentOS 7Debian 8+Ubuntu 16+

使用命令:

#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="8000"
#设置你的授权码,自行修改
AUTH_TOKEN="xxxxxxx"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/ctlist.service <<EOF
[Unit]
Description=ctlist
After=network.target

[Service]
Type=simple
ExecStart=/opt/CTList/CTList -a ${AUTH_TOKEN} -bind 0.0.0.0 -port ${port} -l
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start ctlist
systemctl enable ctlist

相关命令:

启动:systemctl start ctlist
停止:systemctl stop ctlist
重启:systemctl restart ctlist
查看状态:systemctl status ctlist

绑定域名

提示:有宝塔面板的直接使用宝塔就行,没有的就可以使用caddy,2选1即可。

宝塔面板

先进入宝塔面板,然后点击左侧网站,添加站点,再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8000,不要设置缓存,再启用反向代理即可。

如果要启用SSL,就需要在设置反向代理之前,直接在站点配置点击SSL,申请免费let证书,然后再启用反代即可。

Caddy绑定

安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

卸载

#未设置开机自启
rm -rf /opt/CTList

#设置过开机自启
systemctl stop ctlist
systemctl disable ctlist
rm -rf /opt/CTList /etc/systemd/system/ctlist.service

多账号配置

[
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    },
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    }
]

以上为2个账号配置,注意SubPath不能一样,如果3个账号,直接在[]里面加一次配置文件代码,注意中间使用英文逗号,区分。

使用问题

1、访问地址
根据配置文件中的SubPath项中参数访问具体网盘,一般SubPath的具体值在终端中显示在中括号内。

例如: "SubPath": "/CTList"
访问: http://127.0.0.1:5189/CTList

例如: "SubPath": "/"
访问: http://127.0.0.1:5189/

2、寻找目录ID
用于RootPathIdHideItemIdAuthItemId配置项,登陆https://cloud.189.cn,进入需要操作的目录,查看地址栏最后的数字就是这个目录的ID

文件ID需要浏览器F12查看请求项。

RootPathId: 列表展示的根目录对应的天翼网盘文件夹ID, 天翼网盘根目录ID为 -11 
HideItemId: 在展示目录中隐藏天翼网盘内的文件或文件夹,填写其ID,使用 "|" 分隔
AuthItemId: 在展示目录中加密天翼网盘内的文件或文件夹,使用 "|" 分隔

3、加密目录
AuthItemId配置项采用HTTP 401认证方式加密。

# 单个写法
"AuthItemId": "-11?0?UserName:Password"
# 多个写法
"AuthItemId": "-11?0?UserName:Password|-16?1?UserName:Password"

# 字段解析
<文件或者目录的ID>?<加密模式>?<用户名>:<密码>

# 加密模式,加密文件选0和1效果相同.
0: 只加密这一层文件夹,可以直接访问这层文件夹内部的内容.
1: 加密这个文件夹的所有子项目.

4、刷新策略

# 4个刷新逻辑完全异步,互不影响.
Token(登陆保活): 60 * 60 * 10
Cookie(会话授权): 60 * 30
RefreshURL(真实下载链接): 189 (配置文件可改 <RefreshURL>)
RefreshInterval(刷新目录结构): 60 * 15  (配置文件可改, 全局最小值生效 <RefreshInterval>)

5、使用说明

Usage of CTList:
  -bind string
        Bind Address (default "127.0.0.1")
  -port string
        Port (default "5189")
  -a string
        Auth Token.
  -c string
        Config file. (default "config.json")
  -t string
        Index file. (default "index.html")
  -json
        Output json.
  -d
        Run in the background.
  -l
        Less output.

6、目录访问
SubPath配置项,控制目录访问

# 多账户时,确保 SubPath 项唯一.

当 SubPath 配置为空("")或者为单斜杆("/")时
访问路径为 http://0.0.0.0

当 SubPath 配置为具体字段("/CTList")时, "/CTList" 可以修改成自己喜欢的字段.
访问路径为 http://0.0.0.0/CTList

7、在nPlayer播放器中使用

# 网络 --> 添加 --> WebDAV
# 主机: 填写域名.
# 路径: 填写 SubPath 值. 如: /CTList
# 其他请按照情况填写.

# 优势: 在播放器中可以播放各种编码格式的视频.
# 可以适当的将最小缓存时间调小,提高浏览体验.

8、报错相关

400(Not Found URL): 未能找到该文件的链接.
404(Not Found): 未完成初次缓存目录结构或文件路径不正确.
422(Not Found Real URL): 未能生成真实的文件下载链接(一般是文件被举报了,无法下载).
5XX: 一般是服务器端的问题. 部分可能的情况有: 主程序没开, 端口不通, 反代配置不正确.

最后天翼云网盘APP会经常做活动,送空间容量和会员什么的,可以自己下载个app领一下福利,目前这里列举2个活动:

#免费领取3个月黄金会员
https://m.cloud.189.cn/zhuanti/2020/share-vip/web.html

#免费领取1年黄金会员,图片随便传个就过了
https://m.cloud.189.cn/zhuanti/2020/teacher-vip/web.html

#免费领取家庭云1T空间
https://m.cloud.189.cn/zhuanti/2019/1t-v2/web.html

最后该程序拿来搭建个下载站什么的基本够了,空间多的还可以下点电影啥的看看都行。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2021 年 07 月 30 日 01 : 06 PM

发表评论

2832 条评论

  1. 球球

    大佬,我也要码码

    1. 球球
      @球球

      咱也想要

      1. Rat's
        @球球

        已发送到你邮箱

        1. 球球
          @Rat's

          大佬,咱...咱......邮箱没有收到诶,你看看能不能发我谷歌邮箱feiqius@gmail.com 好惨啊

  2. 我系飘

    大佬,求个授权码

    1. Rat's
      @我系飘

      已发送到你邮箱

  3. 彩虹

    大佬求个授权码

    1. Rat's
      @彩虹

      已发送到你邮箱

  4. nnxnno

    安装到一半发现上面的授权码没用呀。
    看评论才发现都被用过
    求个码,大神

    1. Rat's
      @nnxnno

      已发送到你邮箱

  5. moe

    大神,求一枚授权码

    1. Rat's
      @moe

      已发送到你邮箱

  6. gzcd

    大佬,请给个授权码吧,谢谢!

    1. Rat's
      @gzcd

      已发送到你邮箱

  7. Jimmy's mind

    大佬,请给个授权码吧,谢谢。

  8. LCJ

    大佬,给个授权码吧,谢谢

    1. Rat's
      @LCJ

      已发送到你邮箱

  9. 土豆炖牛肉

    准备用用看,求个授权码

    1. Rat's
      @土豆炖牛肉

      已发送到你邮箱

      1. 土豆炖牛肉
        @Rat's

        谢谢老大的码,下了最新版,Cache...很久后出错

        Config Num: 1

        panic: runtime error: index out of range [1] with length 0

        goroutine 88 [running]:
        main.Login(0x11852500, 0xb, 0x118524f8, 0x8, 0x1185c120, 0x22, 0x0, 0x0, 0x0, 0x0)

        /tmp/CTList/CTList.go:380 +0x2488

        main.RefreshSession(0x11852500, 0xb)

        /tmp/CTList/CTList.go:963 +0x14a

        main.RefreshCookie(0x11852500, 0xb)

        /tmp/CTList/CTList.go:955 +0x11f

        main.HeartBeat(0x11852500, 0xb)

        /tmp/CTList/CTList.go:528 +0x506

        main.TimerRefresh(0x7b19a0, 0xf, 0x118fff00, 0x11852500, 0xb)

        /tmp/CTList/CTList.go:988 +0x9f

        created by main.main

        /tmp/CTList/CTList.go:1390 +0x532
        1. Rat's
          @土豆炖牛肉

          你这个不太清楚,登录问题之前已经修复了,刚刚我重新试过,没问题

  10. lxxhdjm

    求申请码

    1. Rat's
      @lxxhdjm

      已发送到你邮箱

      1. lxxhdjm
        @Rat's

        感谢博主