How puyodead1/udemy-downloader works
This is a command-line Udemy course downloader. The user supplies a course URL and authentication material; the CLI configures a Udemy client, retrieves course information and curriculum, then processes the course into local output. Documented options include DRM video handling, captions, assets, quizzes and assignments, caching, and video encoding. The excerpts show the CLI orchestration, HTTP session, and selected media utilities; many download and parsing internals in Udemy.py are unsampled, so links for those capabilities rely on README documentation.
Main entry points: Udemy.py Udemy client · main.py CLI orchestration · Session.py HTTP session · UdemyAuth.py Bearer auth
Components 20
Command-line entry
- CLI orchestration
udemy_downloader/main.py
Udemy access
- Udemy client
udemy_downloader/Udemy.py - Bearer auth
udemy_downloader/UdemyAuth.py - HTTP session
udemy_downloader/Session.py
Course processing
- Course information
udemy_downloader/Udemy.py - Curriculum processing
udemy_downloader/Udemy.py - Course cache
udemy_downloader/Udemy.py
Download outputs
- Lecture video download
udemy_downloader/Udemy.py - DRM handling
udemy_downloader/Udemy.py - Caption download
udemy_downloader/Udemy.py - Lecture assets
udemy_downloader/Udemy.py - Quizzes and assignments
udemy_downloader/Udemy.py - Course output
udemy_downloader/Udemy.py
Media utilities
- Widevine utilities
udemy_downloader/utils.py - VTT conversion
udemy_downloader/vtt_to_srt.py
Other components
- User
- Udemy service
- FFmpeg
- aria2c
- yt-dlp
Connections 27
- User → CLI orchestration: provides options
README.md - CLI orchestration → Udemy client: configures client
udemy_downloader/main.py - CLI orchestration → Udemy client: runs pre-check
udemy_downloader/main.py - CLI orchestration → Udemy client: loads keys
udemy_downloader/main.py - CLI orchestration → Udemy client: visits and updates auth
udemy_downloader/main.py - Udemy client → HTTP session: uses session
udemy_downloader/Udemy.py - Udemy client → Bearer auth: uses auth
udemy_downloader/Udemy.py - Bearer auth → HTTP session: creates session
udemy_downloader/UdemyAuth.py - HTTP session → Udemy service: sends requests
- CLI orchestration → Udemy client: fetches course info
udemy_downloader/main.py - CLI orchestration → Udemy client: fetches content
udemy_downloader/main.py - CLI orchestration → Udemy client: parses course data
udemy_downloader/main.py - CLI orchestration → Udemy client: saves or loads cache
udemy_downloader/main.py - Udemy client → Course information: retrieves details
udemy_downloader/Udemy.py - Udemy client → Curriculum processing: extracts curriculum
udemy_downloader/Udemy.py - Udemy client → Course cache: stores course data
udemy_downloader/Udemy.py - Udemy client → Lecture video download: downloads lectures
README.md - Udemy client → DRM handling: handles encrypted video
README.md - Udemy client → Caption download: downloads captions
README.md - Udemy client → Lecture assets: downloads assets
README.md - Udemy client → Quizzes and assignments: downloads activities
README.md - Udemy client → Course output: writes course files
README.md - Udemy client → Widevine utilities: uses DRM utilities
udemy_downloader/Udemy.py - Udemy client → VTT conversion: converts captions
udemy_downloader/Udemy.py - Lecture video download → yt-dlp: downloads streams
README.md - Lecture video download → aria2c: downloads segments
README.md - Lecture video download → FFmpeg: encodes video
README.md