2026-04-23 02:43:26 +08:00
2026-04-23 02:43:26 +08:00

eeclass-video-downloader

ee-class video dl script fixed

1. 介紹 (Introduction)

這是一個用來下載 ee-class 資訊系課程影片的 Python 腳本。這套系統的防禦機制相對簡單,只要掌握以下幾點,你就能夠輕鬆下載影片。

參考來源:https://github.com/lebr0nli/eeclass-video-dl

使用前請先確認是否有python環境或是可將download.py貼到Google colab上也可以但需要留意檔案會儲存在colab內的工作階段資料夾中務必記得在工作階段內將其下載下來。

本專案僅供技術研究與學術使用,切勿用於不法


2. 使用方式 (Usage)

  1. 打開F12開發人員工具
  2. GetEnv.js的內容貼到瀏覽器F12開發人員工具的Console主控台中執行會得到類似下面格式的東西。
    url = "https://eeclass.yourschool.edu.tw/sysdata/doc/X/XXXXXXXXXXXXXXXXXX/video/video_hd.mp4"
    headers = {
        "Referer": "https://eeclass.yourschool.edu.tw/media/doc/*",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/147.0.0.0",
        "Cookie": "PHPSESSID=; accesstoken=; account="
    }
    filename = "filename.mp4"
    
  3. 將上述內容貼到download.py中的配置區域。(請參考「硬核說明」)
  4. 開啟命令提示字元或終端機,執行 python download.py
  5. 等待下載完成,影片會存到當前目錄。

硬核說明by gemini

1. 核心要領 (Key Points)

這類系統最主要的防禦手段是 「驗證身分」「檢查來源」

  • 來源檢查 (Referer)伺服器會看你是不是從「播放頁面」連過來的。如果直接開啟連結Referer 會是空的,伺服器就會擋掉。
  • 身分權限 (Cookie)accesstoken 是這套系統最關鍵的身分證。如果沒有這串 Cookie伺服器會認為你沒登入回傳 404 或 403。
  • 流式寫入 (Stream):影片檔案通常很大,使用 stream=True 可以讓 Python 一邊下載一邊存檔,不會因為記憶體不足而當機。

2. 需要替換的地方 (Replaceable Parts)

當你要下載另一部影片時,請修改 download.py 中的這三個部分:

A. url (影片真實位址)

  • 尋找方式
    • 方法一:在原始網頁原始碼中搜尋 media = JSON.parse( atob('...')),將那串字串拿去 Base64 解碼。
    • 方法二:打開 F12Network 面板過濾 mp4,找到那個狀態碼是 206 的請求,複製它的 URL。
  • 注意:有時 JSON 裡會有 video_1920.mp4,但如果下載失敗,請嘗試換成 video_hd.mp4video.mp4

B. Referer (來源網址)

  • 修改為:該影片的播放頁面網址。
  • 格式:通常是 https://tms.utaipei.edu.tw/media/XXXXXXXX 是影片 ID
  • 注意Cookie 會過期(例如關掉瀏覽器或一段時間沒操作)。如果下次下載失敗,請更新它。
  • 尋找方式:在 F12 的 Network 面板隨便點一個請求,看右邊的 Request Headers 裡的 Cookie: 欄位,整串複製貼過來即可。
  • 關鍵欄位:通常只要 PHPSESSIDaccesstoken 這兩個就夠了。

3. 進階小技巧:如何快速獲取所有資訊?

下次如果你想省下解碼 Base64 的時間,可以:

  1. 打開影片播放頁面。
  2. 按下 F12 -> Console
  3. 輸入 fs.video.media.src[0].src (通常是最高畫質) 或 fs.video.media.src[1].src
  4. 這就會直接印出影片網址,你只要把這個網址填進 Python 腳本即可。

總結變動清單:

url = "新的影片連結"
headers = {
    "Referer": "新的播放頁面網址",
    "Cookie": "新的 Cookie 字串 (包含最新的 accesstoken)"
}

掌握這三點,這套系統內的所有影片你應該都能順利下載!

Description
No description provided
Readme 31 KiB
Languages
Python 66.3%
JavaScript 33.7%