All Projects → jachinlin → Geektime_dl

jachinlin / Geektime_dl

把极客时间装进 Kindle,内含快手内推等福利

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Geektime dl

Asciidoctor Epub3
📘 Asciidoctor EPUB3 is a set of Asciidoctor extensions for converting AsciiDoc to EPUB3 & KF8/MOBI
Stars: ✭ 166 (-83.93%)
Mutual labels:  kindle, ebook
InMangaKindle
Descarga manga en español en diferentes formatos (PNG, PDF, EPUB, MOBI)
Stars: ✭ 43 (-95.84%)
Mutual labels:  ebook, kindle
Blitz
An eBook Framework (CSS + template)
Stars: ✭ 179 (-82.67%)
Mutual labels:  kindle, ebook
Calibre
The official source code repository for the calibre ebook manager
Stars: ✭ 11,221 (+986.25%)
Mutual labels:  kindle, ebook
Soma
Ulysses.app blueprint for a better ePub stylesheet
Stars: ✭ 23 (-97.77%)
Mutual labels:  ebook, kindle
Pwning Juice Shop
GitBook markdown content for the eBook "Pwning OWASP Juice Shop"
Stars: ✭ 110 (-89.35%)
Mutual labels:  kindle, ebook
Laravel Book
Up to date Epub, Mobi and PDF versions from the official Laravel Docs
Stars: ✭ 221 (-78.61%)
Mutual labels:  kindle, ebook
Libmobi
C library for handling Kindle (MOBI) formats of ebook documents
Stars: ✭ 197 (-80.93%)
Mutual labels:  kindle, ebook
EbookReader
The EbookReader Android App. Support file format like epub, pdf, txt, html, mobi, azw, azw3, html, doc, docx,cbz, cbr. Support tts.
Stars: ✭ 37 (-96.42%)
Mutual labels:  ebook, kindle
eBookDesignChecklist
A progressive web app to help you design eBooks
Stars: ✭ 15 (-98.55%)
Mutual labels:  ebook, kindle
Kindle maker
a tool to make mobi-format file wich could be load into Kindle
Stars: ✭ 70 (-93.22%)
Mutual labels:  kindle, ebook
ComicBookMaker
Script to fetch webcomics and use them to create ebooks.
Stars: ✭ 27 (-97.39%)
Mutual labels:  ebook, kindle
Koreader
An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices
Stars: ✭ 9,467 (+816.46%)
Mutual labels:  kindle, ebook
The Economist Ebooks
经济学人(含音频)、纽约客、自然、新科学人、卫报、科学美国人、连线、大西洋月刊、新闻周刊、国家地理等英语杂志免费下载、订阅(kindle推送),支持epub、mobi、pdf格式, 每周更新. The Economist 、The New Yorker 、Nature、The Atlantic 、New Scientist、The Guardian、Scientific American、Wired、Newsweek magazines, free download and subscription for kindle, mobi、epub、pdf format.
Stars: ✭ 3,471 (+236.01%)
Mutual labels:  kindle, ebook
mpspider
公众号文章抓取&生成kindle电子书
Stars: ✭ 51 (-95.06%)
Mutual labels:  ebook, kindle
bookery
Manage all your ebooks and send them to your reader
Stars: ✭ 35 (-96.61%)
Mutual labels:  ebook, kindle
Epub Press Clients
📦 Clients for building books with EpubPress.
Stars: ✭ 370 (-64.18%)
Mutual labels:  kindle, ebook
Py regular expressions
Learn Python Regular Expressions step by step from beginner to advanced levels
Stars: ✭ 770 (-25.46%)
Mutual labels:  ebook
Network Programming With Go
Network programming with Go
Stars: ✭ 903 (-12.58%)
Mutual labels:  ebook
Ethereum Development With Go Book
📖 A little book on Ethereum Development with Go (golang)
Stars: ✭ 754 (-27.01%)
Mutual labels:  ebook

✨ 重要 ✨

  1. 查看 使用文档 获取最新使用信息。
  2. 快手内推直达部门负责人!



本 README.md 不再更新!👇

左耳听风

把极客时间装进 Kindle

travis codecov Python versions PyPI CI & CD

极客时间专栏文章的质量都是非常高的,比如耗子哥的《左耳听风》、朱赟的《朱赟的技术管理课》和王天一的《人工智能基础课》,都是我非常喜欢的专栏。这些专栏深入浅出,将知识和经验传授于读者,都是值得多次阅读的。

然而,每当空闲时间时,都需要掏出手机才能阅读专栏文章,这在某种情况下是很不便的,尤其坐地铁且没有网络时。作为一个kindle党,最好的解决方案就是kindle电子书。于是有了这个项目

把极客时间装进Kindle

现在,这个项目除了将专栏制作成 kindle 电子书,还提供了下载专栏音频的附加功能,具体使用方法见下。

一、项目结构

项目主要包括下边这几个部分:

  • kindle_maker: 一个 mobi 电子书制作工具。用户只需要提供制作电子书的 html 文件,和一个包含目录信息的 toc.md 文件,kindle_maker 即可制作出一本精美的 kindle 电子书。这部分已拎出来放在单独的项目里,具体使用方式见该项目文档 kindle_maker

  • utils: 提供了 mp3/mp4 下载、邮件发送、html 文件生成等功能

  • gk_apis: 封装极客时间 api

  • store_client: 缓存极客时间专栏数据至本地 json 文件

  • cli: 提供若干 cmd 命令,将上面这几个部分连接在一起,最后使用 kindle_maker 制作电子书,或者使用下载器下载相关音频

二、主要依赖

三、安装

虚拟环境 virtualenv

virtualenv -p python3 ~/venv3 && source ~/venv3/bin/activate

代码

pip install -U geektime_dl

# 或者安装最新代码
pip install -U git+https://github.com/jachinlin/geektime_dl.git

四、使用

查看帮助信息

1、查看 cli subcmd

geektime help

2、查看具体 cli subcmd 帮助信息

geektime <subcmd> --help

<subcmd> 为具体的子命令名,可以从 help 子命令查看。

登录

geektime login  [--account=<account>] [--password=<password>] [--area=<area>]

[]表示可选,<>表示相应变量值,下同

  • account: 手机账号,不提供可稍后手动输入
  • password: 账号密码,不提供可稍后手动输入
  • area: 注册手机号所属地区,默认86

查看课程列表

geektime query

执行该命令后,我们可以看到专栏、视频、微课等课程的课程标题、订阅情况、更新频率还有课程ID,这个课程ID很重要,咱们下边的操作就是基于这个ID进行的。

专栏
        课程ID        已订阅       课程标题             更新频率/课时·时长
        49             否         朱赟的技术管理课      (全集)
        48             是         左耳听风      (全集)
        ......
微课
        课程ID        已订阅       课程标题             更新频率/课时·时长
        75             是         深入浅出gRPC  (全集)
        73             否         Service Mesh实践指南  (全集)
        ......
视频
        课程ID        已订阅       课程标题             更新频率/课时·时长
        138            是         Nginx核心知识100讲    (100课时,约600分钟)
        130            否         算法面试通关40讲      (40课时·约500分钟)
        ......
其他
        课程ID        已订阅       课程标题             更新频率/课时·时长
        69             否         零基础入门 Python 机器学习    (None)
        70             否         零基础入门 TensorFlow (None)

制作电子书

geektime ebook <course_id> [--output-folder=<output_folder> [--comments-count=<comments_count>]
  • course_id: 课程ID,可以从 query subcmd 查看
  • output_folder: 电子书存放目录,默认./ebook/
  • comments_count: 在启动评论下载时,设置评论条数,默认0条

notice: 此 subcmd 需要先执行 login subcmd

下载mp3

geektime mp3 <course_id> [--url-only] [--output-folder=<output_folder>]
  • course_id: 课程ID,可以从 query subcmd 查看
  • --url-only: 只保存音频url,不下载音频
  • output_folder: 音频存放目录,默认./mp3/

notice: 此 subcmd 需要先执行 login subcmd

推送到kindle

如果你想把制作完成的电子书推送到kindle的话,需要提供以下 smtp 配置(以qq邮箱为例):

smtp_encryption = ssl
smtp_host = smtp.qq.com
smtp_password = psd
smtp_port = 465
smtp_user = [email protected]
email_to = [email protected]

然后在制作电子书 ebook subcmd后添加 --push 以及上面参数即可,例如,

geektime ebook -c 42 --push --smtp-host=smtp.qq.com --smtp-port=465 --smtp-encryption=ssl [email protected] --smtp-user=psd [email protected]

至于邮箱smtp配置和kindle邮箱配置就自行google吧。

五、Docker

如果你对 Python 不是很了解,我们还提供了 docker 版本,只要安装好 docker ,依次复制下边指令并执行, 就能下载全部已购买专栏文章、mp3,如果专栏更新完毕的话,我们还会把该专栏做成 kindle 电子书。

# 构建
docker build https://github.com/jachinlin/geektime_dl.git -t geektime

# 登录
docker run -v `pwd`:/output -it --rm geektime login

# 下载
docker run -v `pwd`:/output -it --rm geektime ebook all
docker run -v `pwd`:/output --rm geektime mp3 all

六、Todo list

  • [X] 课程音频
  • [X] 评论
  • [X] 批量下载
  • [X] docker
  • [X] 推送到 Kindle
  • [ ] 支持 mathjax 数学公式
  • [ ] ...

七、其他

  1. 注意版权,勿传播电子书及音视频
  2. pr or issue is welcome
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].