{"id":21888786,"url":"https://github.com/timolinn/joncalhoun-dl","last_synced_at":"2026-04-02T01:20:02.125Z","repository":{"id":51083841,"uuid":"244668391","full_name":"timolinn/joncalhoun-dl","owner":"timolinn","description":"Downloads Go video courses from https://courses.calhoun.io","archived":false,"fork":false,"pushed_at":"2021-05-27T10:48:36.000Z","size":66,"stargazers_count":20,"open_issues_count":1,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-22T17:59:30.106Z","etag":null,"topics":["download","downloader","go","golang","gophercises","joncalhoun-dl","videos","youtube-dl"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timolinn.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":"2020-03-03T15:12:30.000Z","updated_at":"2024-11-23T08:39:50.000Z","dependencies_parsed_at":"2022-09-01T16:42:17.434Z","dependency_job_id":null,"html_url":"https://github.com/timolinn/joncalhoun-dl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timolinn/joncalhoun-dl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timolinn%2Fjoncalhoun-dl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timolinn%2Fjoncalhoun-dl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timolinn%2Fjoncalhoun-dl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timolinn%2Fjoncalhoun-dl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timolinn","download_url":"https://codeload.github.com/timolinn/joncalhoun-dl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timolinn%2Fjoncalhoun-dl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:05:07.454Z","status":"ssl_error","status_checked_at":"2026-04-02T00:56:46.496Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["download","downloader","go","golang","gophercises","joncalhoun-dl","videos","youtube-dl"],"created_at":"2024-11-28T11:17:22.134Z","updated_at":"2026-04-02T01:20:02.100Z","avatar_url":"https://github.com/timolinn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# joncalhoun-dl 🔥⬇\n\nDownloads Go tutorial videos from \u003chttps://courses.calhoun.io\u003e\n\n\u003e **Before you proceed, note that you must be a paid user for the paid content to download**\n\nKindly create your account [here](https://courses.calhoun.io/signup?). Jon is a great teacher, consider buying his premium courses if you want to.\n\n## Installation\n\n+ Ensure [youtube-dl](https://github.com/ytdl-org/youtube-dl#installation) is installed and in your PATH.\n\nTo install this package run\n\n```bash\n    $ go get -u github.com/timolinn/joncalhoun-dl\n```\n\n### To build from source run\n\n```bash\n    $ git clone git@github.com:timolinn/joncalhoun-dl.git\n    $ cd joncalhoun-dl\n    $ go build .\n```\n\n## How to use\n\nIf you installed via `go get`, you can simply run\n\n```bash\n    $ joncalhoun-dl -email=jon@doe.com -password=12345 -course=gophercises -output=your-chosen-directory\n     [joncalhoun-dl]: fetching video urls for gophercises\n     [joncalhoun-dl]: fetching data from https://courses.calhoun.io/courses/cor_gophercises...\n```\n\nIf you built from source, the compiled binary should be in the current folder.\n\n```bash\n    $ ./joncalhoun-dl -email=jon@doe.com -password=12345 -course=gophercises -output=your-chosen-directory\n     [joncalhoun-dl]: fetching video urls for gophercises\n     [joncalhoun-dl]: fetching data from https://courses.calhoun.io/courses/cor_gophercises...\n```\n\nAlso note, video downloads **resumes** from where it stopped, so should you experience network interruption nothing to worry about just make sure the output directory remains the same.\n\n### Command [OPTIONS]\n\n+ `--email` [required] : Your account email address. Sign up [here](https://courses.calhoun.io/signup?)\n+ `--password` [required]: Your account password. _Unlike the unix password prompt, this will not hide your password by default, you'll have to keep an eye over your shoulder 😉_\n+ `--course` [gophercises | algorithmswithgo | testwithgo | webdevwithgo]: This is the name of the course you want to download. **defaults** to `\"gophercises\"`\n+ `--output` [optional]: This is the output directory, which means where you want the videos to be saved. It must be an absolute path. If this is not specified, we will try to create a `\"/[course] folder\"` (ie. the specified course name eg. `gophercises`) within your current working directory.\n+ `--cache` [optional]: Specify your desired location where the cache will be saved. joncalhoun-dl uses the cached data to resume downloads incase of an interruption. It also prevents unecessary repeated calls to the remote server. This will **default** to a `joncalhoun-dl-cache` folder within the output directoy.\n+ `--help` [optional]: Prints usage options\n\n### Supported courses\n\n+ [x] Gophercises - [gophercises](https://gophercises.com)\n+ [x] Algorithms with Go - [algorithmswithgo](https://algorithmswithgo.com)\n+ [x] Testing with Go - [testwithgo](https://testwithgo.com/)\n+ [x] Web development with Go - [webdevwithgo](https://www.usegolang.com/)\n\n### Contributing\n\nThere is still a couple features to implement, check the TODO list below.\n\n+ Start by forking this repo\n+ Create your branch\n+ Implement your fixes, changes etc.\n+ Open a Pull Request\n\n### Issues\n\nIf you find a bug please create an [issue](https://github.com/timolinn/joncalhoun-dl/issues/new)\n\n### Tests\n\nTo run existing tests\n\n```bash\n    $ go test\n```\n\n## TODO\n\n+ [x] Add caching for requests\n+ [x] Add default output directory\n+ [x] Add output directoy flag\n+ [x] provide packaged release\n+ [ ] Add more unit tests\n+ [ ] check for authentication error\n+ [ ] prevent signin when using cache\n+ [ ] choose video quality\n+ [ ] reduce cache size by storing fewer data\n\n### Authors\n\n+ Timothy Onyiuke - _([github](https://github.com/timolinn), [twitter](https://twitter.com/timolinn_))_\n+ Damilare Lana - _([github](https://github.com/damilarelana))_\n\nIf you find this repository to be of any help, please consider giving it Star! 🔥\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimolinn%2Fjoncalhoun-dl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimolinn%2Fjoncalhoun-dl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimolinn%2Fjoncalhoun-dl/lists"}