V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
otokaze
V2EX  ›  Go 编程语言

开源用 Go 写的一个天翼网盘的下载器(NAS 神器)

  •  2
     
  •   otokaze ·
    otokaze · 2021-03-08 11:50:08 +08:00 · 5509 次点击
    这是一个创建于 1116 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个不限速的天翼云网盘下载器。(支持分享链接下载、支持 Windows 、Linux 、macOS ) Based Go.
    详细使用说明看: https://otokaze.me/2021/189cloud-downloader-written-with-golang.html

    版本特色

    • 终端环境依旧有良好操作体验
    • 支持分享链接(密码)下载
    • 支持指定下载并发数
    • 下载不限速(理论上)
    NAME:
       189Cloud-Downloader - 一个 189 云盘的下载器。(支持分享链接)
    
    USAGE:
       189Cloud-Downloader [global options] command [command options] [arguments...]
    
    COMMANDS:
       login     登陆 189 账号
       logout    退出登陆
       exit      退出程序
       share     读取分享链接
       cd        切换至目录
       pwd       查看当前路径
       get       下载这个目录(递归)|文件
       ls        遍历目录(精简)
       ll        遍历目录(详细)
       userinfo  查看当前登录的用户信息
       help, h   Shows a list of commands or help for one command
    
    GLOBAL OPTIONS:
       --help, -h  show help (default: false)
    
    38 条回复    2021-03-18 11:04:44 +08:00
    Kagari
        1
    Kagari  
       2021-03-08 12:08:28 +08:00
    liuxu
        2
    liuxu  
       2021-03-08 12:50:46 +08:00   ❤️ 6
    v2 实名了吗,我记得前段时间写 baidu 客户端都被抓了,这里建议自首
    longxboy
        3
    longxboy  
       2021-03-08 13:24:15 +08:00
    otokaze yyds!
    goodryb
        4
    goodryb  
       2021-03-08 14:02:02 +08:00
    不错不错,不过天益云好像登录之后网页下载速度也很快,之前下过一次,能有 4MB
    xemtof
        5
    xemtof  
       2021-03-08 14:03:51 +08:00
    天翼云下载本来就不限速啊
    otokaze
        6
    otokaze  
    OP
       2021-03-08 14:25:42 +08:00
    @longxboy 虾哥牛🍺
    otokaze
        7
    otokaze  
    OP
       2021-03-08 14:29:22 +08:00
    @xemtof 下载多了会限速,而且这个主要目的是能在 linux 跑,get 一下就能把分享目录里的所有内容都下载到本地,方便很多
    q197
        8
    q197  
       2021-03-08 14:48:43 +08:00
    @otokaze 我超出每日免费限额了还是满速 难道是电信用户不限速?
    guyeu
        9
    guyeu  
       2021-03-08 15:03:47 +08:00   ❤️ 3
    看成了天海翼,我还有救吗
    richzhu
        10
    richzhu  
       2021-03-08 15:25:47 +08:00
    不是长久之计,NAS 还是要稳定第一
    thtznet
        11
    thtznet  
       2021-03-08 15:39:55 +08:00
    可以加入上传么?这样可以作为 NAS 的备份盘用。
    lusi1990
        12
    lusi1990  
       2021-03-08 15:48:22 +08:00
    等用户多了,就开始收割了
    shaopu
        13
    shaopu  
       2021-03-08 15:50:18 +08:00
    不错,顺便让我看到这个良心网站 https://yun.hei521.cn/
    sherlockwhite
        14
    sherlockwhite  
       2021-03-08 16:56:38 +08:00
    话说天翼云有什么地方可以发掘资源吗
    sherlockwhite
        15
    sherlockwhite  
       2021-03-08 16:56:57 +08:00
    @shaopu 看到楼上这个了
    ji39
        16
    ji39  
       2021-03-08 16:59:53 +08:00
    @lusi1990 天翼云收割?
    chenqh
        17
    chenqh  
       2021-03-08 17:00:14 +08:00
    可惜我不用天翼网盘,不然我就 fork 一个 py 的
    lusi1990
        18
    lusi1990  
       2021-03-08 17:06:10 +08:00
    @ji39 当然,用户多了, 服务器的开支就大了,不可能一直免费. 今天签到就给了 7 M
    lyhiving
        19
    lyhiving  
       2021-03-08 17:20:42 +08:00 via iPhone
    @liuxu
    不要老是这样。
    没有创新是不行的。
    支持楼主
    pmlican
        20
    pmlican  
       2021-03-08 17:25:01 +08:00
    问下楼主能不能加个批量转存功能,去年白嫖了一年的黄金会员,但还是有文件数量限制,要开通 vvip 才行。自己尝试过抓包接口写脚本,但获取批量转存 url 时 token 老是失效。我看了你的源码的登录模块,登录参数做了 rsa 加密,好奇问下那个公钥是在哪获取的。谢谢!
    otokaze
        21
    otokaze  
    OP
       2021-03-08 17:48:22 +08:00
    @thtznet 目前我没上传的需求,而且天翼网盘不开会员就给的那么点空间,自己有 nas 完全没必要用到上传功能,不过你可以自己实现后给我提 pr 。
    otokaze
        22
    otokaze  
    OP
       2021-03-08 17:58:59 +08:00
    @pmlican rsa 公钥从 Windows pc 版的登陆页上的 js 代码中获取 https://cloud.189.cn/unifyLoginForPC.action 就是这么神奇
    otokaze
        23
    otokaze  
    OP
       2021-03-08 18:01:46 +08:00
    @pmlican 还有你为什么需要转存功能,直接下载下来不好么,通过 api 直接下载还可以突破 10g 大小的限制,下载链接我是实时获取的所以不用担心过期。
    pmlican
        24
    pmlican  
       2021-03-08 18:19:48 +08:00
    @otokaze 因为去年的活动,直接送了 6T 的容量。自己没有 nas,另外保存到云盘可以在线观看。不过我发现天翼云盘在线播放做的不如百度云,在 mac 上 chrome 播放部分 mp4 黑屏没画面,safari 没问题,而且即使是黄金会员缓存速度都不如百度云未开会员。转存是为了第一能在线播放,第二是先转存防止分享链接失效过快。
    otokaze
        25
    otokaze  
    OP
       2021-03-08 18:25:23 +08:00
    @pmlican 好 我有时间就添加下这个功能,别忘了 watch&star 项目,可以让你第一时间了解到更新。
    Dganzh
        26
    Dganzh  
       2021-03-08 19:17:37 +08:00
    有 b*ai*du 云盘的吗,没开会员,想放 nas 慢慢下
    littlewing
        27
    littlewing  
       2021-03-08 19:46:12 +08:00
    天翼网盘 有啥用
    cjd6568358
        28
    cjd6568358  
       2021-03-08 19:48:41 +08:00
    可以开放 API 吗? 这样前端可以做页面
    otokaze
        29
    otokaze  
    OP
       2021-03-08 19:53:52 +08:00
    @cjd6568358 不需要页面,要在 web 上操作还不如直接用官方的网页版。
    nelsonken
        30
    nelsonken  
       2021-03-08 20:06:30 +08:00
    橙心考虑吗? wx: Z2s1MTA0NA==
    yongzhong
        31
    yongzhong  
       2021-03-08 20:46:12 +08:00
    音风小伙,yyds!
    otokaze
        32
    otokaze  
    OP
       2021-03-09 00:20:16 +08:00
    @pmlican 天翼云有对转存进行限制么??我转存了几十次每次都是批量 50+的任务都没触发限制啊
    hanguofu
        33
    hanguofu  
       2021-03-09 02:44:34 +08:00
    楼主的旅游类的博文也写得挺好~~~
    fatelight
        34
    fatelight  
       2021-03-09 07:55:38 +08:00
    提几个不成熟意见(或者需求)啊哈哈,别嫌弃哈啊哈
    1 天翼云盘最蛋疼的就是 nas 双向同步备份问题,相信很多人需求这个

    2 疑惑:由于日常用 aria2 下载天翼云,基本 500M 宽带可以拉满,等一下试试速度

    3 扩展性一:客户端能迅雷 bt 离线,是否可以抓包然后实现这个功能

    4 扩展性二:TG bot 很好玩,通过 TG bot 控制本地 nas 下载,成熟的 TG bot 框架很多,基本可以套用不用造轮子

    4 扩展性三:如果(基于 2 疑惑) aria2 下载更稳定更快的话,直接导出连接到本地 aria2 服务
    pmlican
        35
    pmlican  
       2021-03-09 10:07:19 +08:00
    @otokaze 估计你转存的文件数量不多,我抓包看了请求的流程是 createBatchTask.action,创建任务获取 taskId,然后重复调用 checkBatchTask.action 检查状态,但返回信息没有说限制多少数量。我之前是卡在 createBatchTask 获取 taskId 失败,因为我 cookie 是抓包获取的,估计是没做登录实时获取 cookie 。你可以试下这个 https://cloud.189.cn/t/yIbuMnUFjmYz,c8hx
    otokaze
        36
    otokaze  
    OP
       2021-03-09 18:52:28 +08:00
    @fatelight

    回复 1:双向备份这个其实不是 downloader 工具应该具备的功能, 不过 idea 确实很好。可以根据 api 给的 file optime+filename 来实现,欢迎来提 pr 一起开发这个功能,不过到时估计项目得改名了😂
    回复 2:本工具实现原理跟 aria2 是一样的,所以两者在下载速度上没啥区别,不过本工具完全因天翼网盘而生,所以更注重操作上的体验。
    回复 3: 本工具只做网盘已有资源的下载。
    回复 4: 可以定义几个接口跟 TG bot 的对接,但是我觉得没啥意义, 因为体验上来说跟终端无法比,你想做到远程控制 nas 进行下载,完全可以用 gotty ( go 写的 web ssh console )然后 screen -S 一个新会话随时随地下载。
    回复 5:你导出链接到本地 aria2 其实也没啥意义,一个是天翼云获取的下载链接有时间淘汰机制,你没下个资源就发现后面的都不能下载了。还有一个就是针对文件夹嵌套的情况,你可以写油猴脚本递归获取到文件夹下的所有资源地址,但是重命名问题和保存文件路径上你会感到非常恶心。

    有更加好的意见的话,可以在 github 上提 issue,等你~
    otokaze
        37
    otokaze  
    OP
       2021-03-09 19:00:48 +08:00
    @pmlican 那这种还是太小众了,一般用户触发不了这个限制,以及你的 cookie 问题,通过 api 刷新 cookie 需要有 access key (还是 sso 登陆那一套东西),不过你可以试着起个协程一直做心跳检查,可能会自续约 cookie 有效期也说不定。
    psllll
        38
    psllll  
       2021-03-18 11:04:44 +08:00
    下载之后 sha256 和文件体积对不上,网页下载正常
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3732 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:14 · PVG 08:14 · LAX 17:14 · JFK 20:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.