Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望可以加入 输入栏目id下载视频 #26

Closed
longgoc opened this issue May 14, 2022 · 13 comments
Closed

希望可以加入 输入栏目id下载视频 #26

longgoc opened this issue May 14, 2022 · 13 comments
Labels
good first issue Good for newcomers question Further information is requested

Comments

@longgoc
Copy link

longgoc commented May 14, 2022

扫描出来的课程,并没有我要下载的。 此时我是已经购买了这个栏目

@nicoxiang
Copy link
Owner

只要在极客时间的我的课程页面有展示的课程(类型包括视频课和专栏)就会出现在列表中,应该是不会漏掉的,可以确认下课程的类型是否正确或者向下滚动列表看看有没有你要的课程。

@nicoxiang nicoxiang added good first issue Good for newcomers question Further information is requested labels May 14, 2022
@longgoc
Copy link
Author

longgoc commented May 15, 2022

emmmmmmmm ,我的账号是企业账号,241个专栏都可以免费观看(专栏+视频),但是app 只扫描出了部分专栏。所以我才提出了这个issue。

@nicoxiang
Copy link
Owner

企业账号的我的课程页面有所有的课程吗?我是抓取的这个页面的接口数据,我手里只有个人账号,不清楚企业账号的接口会不会不太一样。

@nicoxiang
Copy link
Owner

@longgoc 我找了一个企业学员的账号,他的账号有几节课,在我的课程页面 都可以查看到,所以在我的工具里也能看到他的所有课。不清楚你的账号是不是有区别导致有部分缺失。

qyxy

@longgoc
Copy link
Author

longgoc commented May 20, 2022

好的呢 谢谢关心,我在看下哈

@nicoxiang nicoxiang added the help wanted Extra attention is needed label May 24, 2022
@xpflying
Copy link

xpflying commented May 24, 2022

可能是需要点击下课程的开始学习按钮,然后随便找两个视频点击下,这样在我的课程里面就会显示这门课.
我买了极客时间的会员,也是发现我的课程列表里面显示不全,用这个方法一个个去视频课里面点击下就可以显示了.
不过geektime-dl的作者用geektime-dl video这条命令就可以显示出所有的视频课了,希望能增加命令行参数能单独指定下载某门课程和某个章节.我就写了一个简单的嵌套循环的geektime-dl命令批量的下完了所有的专栏.

@nicoxiang
Copy link
Owner

@xpflying 循环执行 geektime-dl 的命令下载专栏 PDF 能一直成功吗?不会限流吗?下载视频好像不会限流

@xpflying
Copy link

xpflying commented May 24, 2022

下单独章节,然后sleep 2秒就没啥问题了.偶尔会有没下载失败的,等跑完再跑一遍也会跳过已下载的,这样就可以补全一下了

for x in `geektime-dl column|awk '{print $4}'|grep -v ID`;do
  echo "####################################  当前课程ID $x ####################################"
  for y in `geektime-dl -i $x|awk '{print $4}'|grep -v ID`;do
    geektime-dl $x $y
    sleep 2
  done
done

@nicoxiang
Copy link
Owner

sleep 2s 的方法我试试,但是显示所有课程的逻辑如果要加到现在的可交互程序里,可能要在登录后的第一页显示类似下面的选项

  • 显示所有课程
  • 显示我的课程

我感觉有点奇怪,而且如果进入选择所有课程的列表页,可能会滚动很久才能找到自己需要的课程,效果不是很好。这方面确实 geektime-dl 这种一条条输命令行的方式更有优势。但是可交互类型的程序就不用找课程ID,输多次命令行,体验上确实是有些不同的。

@xpflying
Copy link

可以增加参数来显示全部课程,不加参数就用交互模式,这样就相互不影响了.

@nicoxiang
Copy link
Owner

@xpflying 如果这样需要像 geektime-dl 那样增加一个参数显示所有课程,拿到课程 ID 后还需要一个单独的命令行下载指定 ID 的课程,而这两个参数和原本的程序完全是分开的,会很突兀,这和现在的交互式逻辑是冲突的。

@xpflying
Copy link

买了极客时间会员,会员能看的视频课加专栏一共大概是231个,交互式的光翻页就得好多页,然后还得一个个下得累死,还得考虑有下载断掉再重下的情况.
不过还好用geektime-dl批量下载了所有的专栏,用geektime-downloader只下载十多个需要看的视频.:smile:

@nicoxiang nicoxiang removed the help wanted Extra attention is needed label May 26, 2022
@nicoxiang
Copy link
Owner

Closed. See #18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants