{"id":20417062,"url":"https://github.com/bn3t/udemy-dl-rs","last_synced_at":"2025-05-08T14:32:44.382Z","repository":{"id":43169382,"uuid":"171108090","full_name":"bn3t/udemy-dl-rs","owner":"bn3t","description":"Download udemy courses in batch.","archived":true,"fork":false,"pushed_at":"2021-02-23T15:24:06.000Z","size":167,"stargazers_count":22,"open_issues_count":2,"forks_count":6,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-03-20T17:53:03.117Z","etag":null,"topics":["cli","rust-lang","udemy"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bn3t.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-17T10:20:27.000Z","updated_at":"2024-09-12T21:12:55.000Z","dependencies_parsed_at":"2022-08-30T11:01:46.553Z","dependency_job_id":null,"html_url":"https://github.com/bn3t/udemy-dl-rs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bn3t%2Fudemy-dl-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bn3t%2Fudemy-dl-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bn3t%2Fudemy-dl-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bn3t%2Fudemy-dl-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bn3t","download_url":"https://codeload.github.com/bn3t/udemy-dl-rs/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253085703,"owners_count":21851684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","rust-lang","udemy"],"created_at":"2024-11-15T06:24:21.065Z","updated_at":"2025-05-08T14:32:43.910Z","avatar_url":"https://github.com/bn3t.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Download udemy courses in batch. [![Build Status](https://travis-ci.org/bn3t/udemy-dl-rs.svg?branch=develop)](https://travis-ci.org/bn3t/udemy-dl-rs)\n\n# Usage\n\nA cross-platform utility written in Rust to download courses from udemy for personal offline use.\n\n## Features\n\n- List down course contents and video resolution (option: `info`).\n- Download specific chapter in a course (option: `-c / --chapter`).\n- Download specific lecture in a chapter (option: `-l / --lecture`).\n- Automatically pickup the best resolution for video download.\n- Download lecture(s) requested resolution (option: `-q / --quality`).\n- Download course to user requested path (option: `-o / --output`).\n- Mark complete chapters or individual lectures as complete.\n- Authentication token (option: `-t / --access-token`).\n\n## Authentication Details\n\nAuthentication is only supported via the usage of an _Access Token_. The following paragraph details how to obtain such a token.\n\n### Extracting your Access Token\n\n- Open developer tools on your browser and access the **Network Tab**.\n- Login to your udemy account.\n- Check the network tab, you can filter on XHR requests to make the following easier.\n- Right click on request links to **udemy.com/api-2.0/**. Check the request cookies and find one named _access_token_. Copy its value. This is your access token.\n\n## Example Usage\n\n### Obtain information from a course\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken info\n\n### Download a course to current diretory\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken download\n\n### Download a course to a specific directory\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken download -o ~/Downloads\n\n### Download a course to a specific directory with a specific quality\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken download -o ~/Downloads -q 720\n\n### Download a specific chapter\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken download -o ~/Downloads -c 1\n\n### Download a specific lecture from a chapter\n\n    udemy-dl-rs -u COURSE_URL -t YourAccessToken download -o ~/Downloads -c 8 -l 77\n\nNote: The lecture number is it's index in the overall course. Use info to know more.\n\n## Command Line Usage\n\n### General Usage\n\n```\n$ udemy-dl-rs --help\nUdemy Downloader 0.10.0\nBernard Niset\n\n\nUSAGE:\n    udemy-dl-rs [FLAGS] --access-token \u003cTOKEN\u003e --url \u003cURL\u003e \u003cSUBCOMMAND\u003e\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n    -v               Sets the level of verbosity\n\nOPTIONS:\n    -t, --access-token \u003cTOKEN\u003e    Access token to authenticate to udemy\n    -u, --url \u003cURL\u003e               URL of the course to download\n\nSUBCOMMANDS:\n    complete    Mark courses as completed\n    download    Download course content\n    help        Prints this message or the help of the given subcommand(s)\n    info        Query course information\n\nBuild: 814815c - 2019-09-07\n```\n\n### Subcommand Usage - info\n\n```\n$ udemy-dl-rs info --help\nudemy-dl-rs-info\nQuery course information\n\nUSAGE:\n    udemy-dl-rs --password \u003cPASSWORD\u003e --url \u003cURL\u003e --username \u003cUSERNAME\u003e info\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n```\n\n### Subcommand Usage - download\n\n```\n$ udemy-dl-rs download --help\nudemy-dl-rs-download\nDownload course content\n\nUSAGE:\n    udemy-dl-rs --password \u003cPASSWORD\u003e --url \u003cURL\u003e --username \u003cUSERNAME\u003e download [FLAGS] [OPTIONS]\n\nFLAGS:\n    -d, --dry-run    Dry run, show what's would be done but don't download anything.\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nOPTIONS:\n    -c, --chapter \u003cCHAPTER\u003e      Restrict downloads to a specific chapter.\n    -l, --lecture \u003cLECTURE\u003e      Restrict download to a specific lecture.\n    -o, --output \u003cOUTPUT_DIR\u003e    Directory where to output downloaded files (default to .). [default: .]\n    -q, --quality \u003cQUALITY\u003e      Download specific video quality.\n```\n\n### Subcommand Usage - complete\n\n```\n$ udemy-dl-rs complte --help\nudemy-dl-rs-complete\nMark courses as completed\n\nUSAGE:\n    udemy-dl-rs --password \u003cPASSWORD\u003e --url \u003cURL\u003e --username \u003cUSERNAME\u003e complete [OPTIONS] --chapter \u003cCHAPTER\u003e\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nOPTIONS:\n    -c, --chapter \u003cCHAPTER\u003e    Restrict marking a specific chapter.\n    -l, --lecture \u003cLECTURE\u003e    Restrict marking a specific lecture.\n```\n\n## To do\n\n- Resume capability for a course video.\n- Supports organization and individual udemy users both.\n- Download subtitles for a video.\n- Download chapter(s) by providing range in a course.\n- Download lecture(s) by providing range in a chapter.\n\n# Development Guidelines\n\n## Unit tests\n\nInstall cargo watch\n\n    cargo install cargo-watch\n\nRun unit tests. Unit tests need to run single threaded.\n\n    cargo test -- --test-threads=1\n\nRun unit tests with watch\n\n    cargo watch -w src -x \"test -- --test-threads=1\"\n\n## Run info command\n\n    cargo run -- -u https://www.udemy.com/css-the-complete-guide-incl-flexbox-grid-sass -t YourAccessToken info\n\n## Run download command\n\n    cargo run -- -u https://www.udemy.com/css-the-complete-guide-incl-flexbox-grid-sass -t YourAccessToken download -c 1\n\n## Run download command to a location ~/Downloads\n\n    cargo run -- -u https://www.udemy.com/css-the-complete-guide-incl-flexbox-grid-sass -t YourAccessToken download -c 1 -o ~/Downloads\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbn3t%2Fudemy-dl-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbn3t%2Fudemy-dl-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbn3t%2Fudemy-dl-rs/lists"}