歡迎Star?!歡迎提Issue
本項目在網協2023「十行代號」比賽榮獲特等獎? 指路?Github
下載延河課堂的錄影視頻
支持下載非選課班級的課程
支援多線程批量下載
支援下載電腦影片或教室錄影
按課程名稱分類資料夾保存
2023-4-10 同步延河課堂介面更改
2023-4-20 更改js執行方式,無需安裝nodejs
2023-11-12 簽章效率優化,優化下載速度
理論可以跑滿千兆有線網,可以根據電腦效能修改max_workers數量
2024-4-2 (?)更改signature實作方式
放棄js執行,不再使用js2py,提升相容性issue#5
現在時間sign和url字尾都是py原生
2024-4-2 (?)更改互動方式,新增完整的命令列參數
支持一次下載全部課程時,感謝@ZJC-GH同學的建議和pr
支援分別或同時下載VGA和Video
支援增量下載,自動跳過已下載文件
更改暫存檔案儲存位置,放在temp
中
可以自訂輸出資料夾位置
詳見#食用方法
優化ffmpeg輸出
2024-4-3 (??)新增了GUI互動介面
基於PySimpleGUI4,可以跨平台運行
下載Releases中的exe文件
建議下載附有ffmpeg版本,如yanhekt-xxx-gui-ffmpeg.exe
直接運行,略過後邊的部分
https://pypi.org/project/yanhekt/
安裝yanhekt
pip install yanhekt
確保命令列環境有ffmpeg
Windows下載後,新增環境變數即可
相關安裝請自行搜尋
如果最終影片沒有合併,表示ffmpeg環境有問題
下載/克隆本倉庫或下載Releases
安裝python依賴套件
pip install -r requirements.txt# (其實是一個requests)
確保命令列環境(或程式碼資料夾內)有ffmpeg
Windows簡單的方法:下載後拷貝到程式碼資料夾內
本倉庫的release附帶了ffmpeg(僅exe)
相關安裝請自行搜尋
如果最終影片沒有合併,表示ffmpeg環境有問題
開啟方法
若release exe,直接打開
若使用pip安裝
yanhekt-gui yanhekt gui
若源碼運行
python main.py gui
開箱即食
扔進連結或courseID(可Ctrl-C V)
獲取課程資訊
隨意選擇課程(Ctrl、Shift、滑鼠拖曳都可多選)
設定一些參數,例如要下載什麼視頻
開下!
注意:如果使用本機原始碼安裝,請將本節中的yanhekt
或yanhekt-cli
替換為python main.py
取得課程ID
在課程詳情頁,注意不是影片播放頁,如https://www.yanhekt.cn/course/11111
,
從url中獲得課程id,如11111
命令列參數
--skip
,跳過已下載,僅下載新上傳的視頻
# 例:定期更新課程全部影片yanhekt 11111 --all --skip
--dual
,同時下載電腦錄影和教室影片**(預設)**
--vga
,僅下載電腦錄影
--video
,僅下載教室視頻
# 範例:下載第3-8堂課,只下載電腦錄影yanhekt 11111 --range 3 9 --vga
--all
,下載全部課程
--list 0 2 4
,下載選定的課程列表
--range 3 5
,下載範圍內的課程
# 範例:下載第3-8堂課yanhekt 11111 --range 3 9 yanhekt 11111 -L 3 9
,直接給出
# 例:查看課程資訊及影片清單yanhekt 11111
指定課程的ID
選擇下載的課時序號
選擇下載的影片類型
增量下載
更多進階用法請參考命令列提示
!yanhekt --help# usage: main.py [-h] [-A | -L i [i ...] | -R i i] [-D | -G | -V] [-S] [-- dir DIR] [--max-workers num] courseID# GDDG08/YanHeKT_Downloader# positional arguments:# courseID Course ID of YanHeKT# options:# -h, --help show this help message and Jexit#son Selection:#exv. PRINT LESSON LIST AND EXIT.# -A, --all Download all lessons# -L i [i ...], --list i [i ...]# Select of lesson index (eg, --list 1 2 4)# -R i i, --range i i Select range of lessons (eg, --range 3 5 for [3,5))# Video Type:# -D, --dual Download both VGA(PC) and Video ( default)# -G, --vga Download VGA(PC) only# -V, --video Download Video only# Configurations:# -S, --skip Skip existing files# --dir DIR Output directory (eg, -- dir ./output)# --max-workers num Max workers for downloading (default: 32)
ENJOY !
仍處於初期開發階段,歡迎提功能需求和PR
from yanhekt import YanHeKTyanhekt = YanHeKT(25555, _all=True, _dual=True, _skip=True, _dir='./')yanhekt.download()
@ZJC-GH 同學增加了大量下載功能
有需要的同學可以到這個倉庫release下載使用
目前已合併到dev分支
計畫使用argparse
完善命令列參數,優化下互動體驗(2.2.0已實現)
(超大餅)在參數寫完後整個簡單的gui
M3u8Download