{"id":20402545,"url":"https://github.com/willdunklin/lecture-web-scraper","last_synced_at":"2026-06-07T19:31:53.520Z","repository":{"id":119680913,"uuid":"408624356","full_name":"willdunklin/lecture-web-scraper","owner":"willdunklin","description":null,"archived":false,"fork":false,"pushed_at":"2021-09-21T00:20:28.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-05T01:45:11.964Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willdunklin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-20T22:59:57.000Z","updated_at":"2021-09-21T00:20:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"78862d2c-c567-4594-995c-3890083e7ddf","html_url":"https://github.com/willdunklin/lecture-web-scraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/willdunklin/lecture-web-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willdunklin%2Flecture-web-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willdunklin%2Flecture-web-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willdunklin%2Flecture-web-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willdunklin%2Flecture-web-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willdunklin","download_url":"https://codeload.github.com/willdunklin/lecture-web-scraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willdunklin%2Flecture-web-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34035953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-15T04:54:39.209Z","updated_at":"2026-06-07T19:31:53.498Z","avatar_url":"https://github.com/willdunklin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lecture-web-scraper\n\nRecently one of my favorite online classes of the pandemic period ended and I wanted to save the lecture videos for posterity. \nUnluckily for me, the video host Echo360 made it remarkably difficult to download any content on their site. \nSo I set out to make this project, a webscraper/ffmpeg app in Python that will download Echo360 lectures to your heart's content.\n\n## How it works\n\nThe project uses Selenium, more specifically selenium-wire, to open content on Echo360 and track the network traffic.\nI investigated the source of the media and found it to be two tailored URLs, one for audio and ther other for video (even though both were in the same .m4s file format). \nAfter downloading the files, all that is left to do is to combine them using ffmpeg to output a shiny, brand new mp4.\n\n### Dependencies\n- ffmpeg\n- ffmpeg-python\n- selenium-wire\n- re\n- requests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilldunklin%2Flecture-web-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilldunklin%2Flecture-web-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilldunklin%2Flecture-web-scraper/lists"}