# coursera-dl/coursera-dl

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/coursera-dl-coursera-dl).**

9,625 stars · 2,252 forks · Python · lgpl-3.0

## Links

- GitHub: https://github.com/coursera-dl/coursera-dl
- awesome-repositories: https://awesome-repositories.com/repository/coursera-dl-coursera-dl.md

## Topics

`archival` `coursera` `coursera-dl` `downloader` `lectures` `python` `storage` `video` `video-downloader`

## Description

This project is a command-line utility and Python-based scraper designed to download and archive educational media from Coursera for offline access. It functions as a tool for saving course syllabi, videos, subtitles, and notebooks to a local file system to ensure a secure backup of academic materials.

The tool distinguishes itself by providing capabilities for course quiz extraction, retrieving questions and answers from both graded and ungraded quizzes. It supports the retrieval of learning materials from both legacy and on-demand platforms and implements interrupted download resumption to avoid restarting full transfers.

The system covers broad capability areas including resource filtering via regular expressions, multi-threaded request scheduling to optimize download performance, and identity verification using session cookies. It also includes support for parsing course structures without downloading media files and integrates with external downloader processes for large file transfers.

The application can be executed within a containerized environment to ensure dependency isolation from the host system.

## Tags

### Education & Learning Resources

- [Archive Utilities](https://awesome-repositories.com/f/education-learning-resources/course-repositories/archive-utilities.md) — Provides a terminal application for saving full course syllabi and educational media to a local file system.
- [Educational Courses](https://awesome-repositories.com/f/education-learning-resources/educational-courses.md) — Fetches videos, subtitles, and notebooks from educational courses for offline archival. ([source](https://github.com/coursera-dl/coursera-dl/blob/master/.gitattributes))
- [Course Content Backups](https://awesome-repositories.com/f/education-learning-resources/course-content-backups.md) — Creates secure local backups of enrolled course content using session cookies and authentication credentials.
- [Course Material Managers](https://awesome-repositories.com/f/education-learning-resources/course-material-managers.md) — Saves local copies of course syllabi, quizzes, and lecture materials to prevent loss of access.
- [Offline Learning Materials](https://awesome-repositories.com/f/education-learning-resources/offline-learning-materials.md) — Downloads videos, subtitles, and notebooks from Coursera for offline viewing and study.
- [Quiz Data Extractors](https://awesome-repositories.com/f/education-learning-resources/question-and-answer-sets/quiz-data-extractors.md) — Retrieves questions and answers from both graded and ungraded quizzes across multiple formats. ([source](https://github.com/coursera-dl/coursera-dl/blob/master/CHANGELOG.md))

### Part of an Awesome List

- [Course and Tutorial Downloaders](https://awesome-repositories.com/f/awesome-lists/learning/course-and-tutorial-downloaders.md) — Serves as a command-line tool for downloading videos, subtitles, and notebooks from Coursera for offline learning.
- [Syllabus Parsing](https://awesome-repositories.com/f/awesome-lists/learning/course-and-tutorial-downloaders/syllabus-parsing.md) — Parses and stores the course structure and metadata without needing to download the associated media files. ([source](https://github.com/coursera-dl/coursera-dl/blob/master/CHANGELOG.md))
- [Download Managers](https://awesome-repositories.com/f/awesome-lists/media/download-managers.md) — Integrates with third-party utilities for large file transfers and network timeout management. ([source](https://github.com/coursera-dl/coursera-dl#readme))

### Graphics & Multimedia

- [Multi-Platform Video Extraction](https://awesome-repositories.com/f/graphics-multimedia/multi-platform-video-extraction.md) — Collects videos and subtitles from both legacy and on-demand educational content platforms. ([source](https://github.com/coursera-dl/coursera-dl#readme))
- [Media Downloaders](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-downloaders.md) — Retrieves high-resolution video and accompanying text resources via automated web requests.

### Networking & Communication

- [Automated Content Fetchers](https://awesome-repositories.com/f/networking-communication/channel-content-retrieval/automated-content-fetchers.md) — Implements automated batch downloading of educational resources using command-line filters and configuration files.
- [Download Resumption](https://awesome-repositories.com/f/networking-communication/download-resumption.md) — Continues retrieving files from the point of failure to avoid restarting full transfers. ([source](https://github.com/coursera-dl/coursera-dl#readme))

### Security & Cryptography

- [Session-Based Scrapers](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/session-and-credential-handling/session-credential-management/browser-session-authentication/session-based-scrapers.md) — Uses session cookies passed via the command line to access protected course content.
- [Content Selection Filters](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/browser-security/content-filtering-blocking/content-filtering/repository-content-filters/content-selection-filters.md) — Uses regular expressions and file extension checks to select specific weeks or resource types. ([source](https://github.com/coursera-dl/coursera-dl#readme))
- [Session Authentication](https://awesome-repositories.com/f/security-cryptography/session-authentication.md) — Uses session cookies via the command line to authenticate and access protected course materials. ([source](https://github.com/coursera-dl/coursera-dl/blob/master/CHANGELOG.md))

### Software Engineering & Architecture

- [Content Hierarchy Traversers](https://awesome-repositories.com/f/software-engineering-architecture/recursive-validation-engines/recursive-tree-traversers/file-system-traversers/recursive-directory-traversers/content-hierarchy-traversers.md) — Walks through nested course hierarchies to discover and collect all associated educational materials.
- [Multi-Threaded Request Handling](https://awesome-repositories.com/f/software-engineering-architecture/high-throughput-task-processing/network-request-processing/multi-threaded-request-handling.md) — Distributes network requests across multiple threads to increase throughput and optimize download performance.

### Data & Databases

- [Regex Filters](https://awesome-repositories.com/f/data-databases/data-query-filters/regex-filters.md) — Filters files and lecture names by applying regular expression patterns to match specific subsets of content.

### Development Tools & Productivity

- [External Transfer Offloading](https://awesome-repositories.com/f/development-tools-productivity/remote-file-transfers/external-transfer-offloading.md) — Offloads large file transfers to third-party utility processes to improve stability and manage timeouts.
