👾 Geektime-dl 是使用Go构建的快速、简单的 极客时间 下载器。支持下载文章为PDF,也支持音频,视频下载。
以下为必须安装依赖:
Note: FFmpeg的使用是为了最后视频文件合并成需要的格式。
Note: 借助
chromedp/chromedp
工具导出页面为PDF文档,该功能需要谷歌浏览器的支持。
安装Geektime-dl,可以使用如下go get
命令,或者从Releases 页面下载二进制文件.
$ go get github.com/udoless/geektime-downloader
使用方法:
#下载
geektime-dl [OPTIONS] 课程ID [目录ID]
#查看专栏、视频,登录及其他命令操作
geektime-dl [OPTIONS] command
包含命令
login 登录极客时间
who 获取当前帐号
users 获取帐号列表
su 切换极客时间帐号
buy 获取已购买过的专栏和视频课程
column 获取专栏列表
video 获取视频课程列表
help, h 帮助
通过账号密码登录:
$ geektime-dl login --phone xxxxxx --password xxxxxx
极客时间账号登录成功: XXX
通过Cookie登录:
$ geektime-dl login --gcid xxxxxx --gcess xxxxxx --serverId 'xxxxxxx'
极客时间账号登录成功: XXX
只能下载已购买或者免费部分的视频、专栏。
$ geektime-dl 66
01 - 什么是微服务架构? 107.55 MiB / 107.54 MiB [==================================] 100.01% 1.42 MiB/s 1m15s
02 - 架构师如何权衡微服务的利弊? 92.10 MiB / 92.09 MiB [============================] 100.01% 1.69 MiB/s 54s
03 - 康威法则和微服务给架构师怎样的启示? 69.38 MiB / 69.38 MiB [=====================] 100.01% 1.68 MiB/s 41s
04 - 企业应该在什么时候开始考虑引入微服务? 114.20 MiB / 114.20 MiB [==================] 100.00% 1.41 MiB/s 1m21s
05 - 什么样的组织架构更适合微服务? 121.10 MiB / 121.09 MiB [========================] 100.00% 1.66 MiB/s 1m13s
06 - 如何理解阿里巴巴提出的微服务中台战略?65.23 MiB / 126.82 MiB [==========>---------] 51.43% 1.68 MiB/s 1m15s
只需下载课程中的某个目录
$ geektime-dl 66 2276
16 - 微服务监控系统分层和监控架构 11.22 MiB / 97.55 MiB [======>--------------------] 28.51% 1.30 MiB/s 01m06s
下载专栏时,可以同时下载专栏文章内容为PDF文档(需要谷歌浏览器支持
)
04 - 静态容器:办公用品如何表达你的内容? 13.94 MiB / 13.94 MiB [===================] 100.00% 2.23 MiB/s 6s
正在生成文件:【04 - 静态容器:办公用品如何表达你的内容?.pdf】 完成
注:
如果生成文件提示失败,可以重复执行命令针对失败的文件再次生成
,已生成的文件不会重复生成。如果尝试多次都是失败,可以Issues提问。
查看课程中可下载的目录
$ geektime-dl -i 66
+----+------+------+----------------------------------------------+---------+---------+---------+------+
| # | ID | 类型 | 名称 | SD | LD | HD | 下载 |
+----+------+------+----------------------------------------------+---------+---------+---------+------+
| 0 | 2184 | 视频 | 01 什么是微服务架构? | 86.52M | 53.45M | 107.54M | ✔ |
| 1 | 2185 | 视频 | 02 架构师如何权衡微服务的利弊? | 71.43M | 44.12M | 92.09M | ✔ |
| 2 | 2154 | 视频 | 03 康威法则和微服务给架构师怎样的启示? | 54.32M | 33.57M | 69.38M | ✔ |
| 3 | 2186 | 视频 | 04 企业应该在什么时候开始考虑引入微服务? | 90.07M | 55.67M | 114.20M | ✔ |
| 4 | 2187 | 视频 | 05 什么样的组织架构更适合微服务? | 90.22M | 55.79M | 121.09M | ✔ |
| 5 | 2188 | 视频 | 06 如何理解阿里巴巴提出的微服务中台战略? | 126.82M | 100.05M | 61.79M | ✔ |
| 6 | 2189 | 视频 | 07 如何给出一个清晰简洁的服务分层方式? | 45.89M | 62.07M | 61.95M | ✔ |
| 7 | 2222 | 视频 | 08 微服务总体技术架构体系是怎样设计的? | 85.67M | 52.91M | 109.83M | ✔ |
| 8 | 2269 | 视频 | 09 微服务最经典的三种服务发现机制 | 94.00M | 73.18M | 45.21M | ✔ |
#查看专栏列表
$ geektime-dl column
+----+-----+---------------------------+------------+------------------+------+
| # | ID | 名称 | 时间 | 作者 | 购买 |
+----+-----+---------------------------+------------+------------------+------+
| 0 | 42 | 技术与商业案例解读 | 2017-09-07 | 徐飞 | |
| 1 | 43 | AI技术内参 | 2017-09-11 | 洪亮劼 | |
| 2 | 48 | 左耳听风 | 2017-09-20 | 陈皓 | 是 |
| 3 | 49 | 朱赟的技术管理课 | 2017-11-09 | 朱赟 | 是 |
| 4 | 50 | 邱岳的产品手记 | 2017-11-16 | 邱岳 | |
| 5 | 62 | 人工智能基础课 | 2017-12-01 | 王天一 | 是 |
| 6 | 63 | 赵成的运维体系管理课 | 2017-12-13 | 赵成 | |
| 7 | 74 | 推荐系统三十六式 | 2018-02-23 | 刑无刀 | |
| 8 | 76 | 深入浅出区块链 | 2018-03-19 | 陈浩 | 是 |
#查看视频列表
$ geektime-dl video
+----+-----+------------------------------------------+------------+--------------+------+
| # | ID | 名称 | 时间 | 作者 | 购买 |
+----+-----+------------------------------------------+------------+--------------+------+
| 0 | 66 | 微服务架构核心20讲 | 2018-01-08 | 杨波 | 是 |
| 1 | 77 | 9小时搞定微信小程序开发 | 2018-03-22 | 高磊 | |
| 2 | 84 | 微服务架构实战160讲 | 2018-05-03 | 杨波 | 是 |
| 3 | 98 | 零基础学Python | 2018-05-25 | 尹会生 | |
Ctrl+C 中断下载。
存在 .download
临时文件,使用相同的参数执行 geektime-dl
命令,则下载进度将从上一个会话恢复。