{"id":13570311,"url":"https://github.com/nedlir/languagepod101-scraper","last_synced_at":"2025-04-04T06:32:20.409Z","repository":{"id":43018888,"uuid":"308862538","full_name":"nedlir/languagepod101-scraper","owner":"nedlir","description":"Python scraper for Language Pods such as Japanesepod101.com :japanese_ogre: :japan: :sushi: Compatible with Japanese, Chinese, French, German, Italian, Korean, Portuguese, Russian, Spanish and many more! ✨","archived":false,"fork":false,"pushed_at":"2024-12-14T11:29:10.000Z","size":1335,"stargazers_count":153,"open_issues_count":0,"forks_count":25,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-12-14T12:24:18.853Z","etag":null,"topics":["beautifulsoup","chinese-language","course","download","japanese","japanese-language","japanesepod","japanesepod101","jpod101","language","language-learning","learn","learn-chinese","learn-japanese","learn-spanish","podcast","python","requests","scraping","spanish-language"],"latest_commit_sha":null,"homepage":"","language":"Python","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/nedlir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-10-31T11:05:33.000Z","updated_at":"2024-12-14T11:29:15.000Z","dependencies_parsed_at":"2024-01-14T03:50:00.922Z","dependency_job_id":"e9059bcb-f4b1-4191-8ad2-9c71d8d1e986","html_url":"https://github.com/nedlir/languagepod101-scraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedlir%2Flanguagepod101-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedlir%2Flanguagepod101-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedlir%2Flanguagepod101-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedlir%2Flanguagepod101-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nedlir","download_url":"https://codeload.github.com/nedlir/languagepod101-scraper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247134992,"owners_count":20889412,"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":["beautifulsoup","chinese-language","course","download","japanese","japanese-language","japanesepod","japanesepod101","jpod101","language","language-learning","learn","learn-chinese","learn-japanese","learn-spanish","podcast","python","requests","scraping","spanish-language"],"created_at":"2024-08-01T14:00:50.843Z","updated_at":"2025-04-04T06:32:15.398Z","avatar_url":"https://github.com/nedlir.png","language":"Python","funding_links":[],"categories":["Python Packages"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e:zap: languagepod101-scraper\t:zap:\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"readme\\language_selection.jpg\" alt=\"Language selection\"\u003e\n  \u003cbr\u003e\n  \u003ci\u003elanguagepod101-scraper is a resource for dozen of language learning courses and study material for FREE.\u003c/i\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\n## :mortar_board: About\n\nlanguagepod101-scraper helps you download full language courses and save them to a local directory.\nThe courses are produced and distributed by [Innovative Language](https://www.innovativelanguage.com/online-language-courses),\nwho provides language learning courses from a selection of dozens of languages. Each lesson is usually 10-20 minutes long.\n\nTo get started, [choose one of the languages courses](https://www.innovativelanguage.com/online-language-courses)\noffered by Innovative Language and create a free account.\n\n## :pushpin: Usage\n\nTo use the script, fulfill the requirements and follow the example as demonstrated below.\n\n### :electric_plug: Requirements\n\n- Download and install [Python 3.9+](https://www.python.org/).\n- Install required packages from [requirements.txt](requirements.txt) file using\n  [pip](https://packaging.python.org/tutorials/installing-packages/).\n\n  ```sh\n  pip install -r requirements.txt\n  ```\n\n### :bookmark_tabs: Example\n\nFor the sake of example, the process of downloading of a course from\n[Japanese Pod 101](https://www.japanesepod101.com/) will be demonstrated.\n\nJapanese Pod 101 and all other sites have a similar structure which looks as following:\n\n  ```\n  Japanesepod101\n  ├─ Level 1 - Absolute Beginner\n  │  ├─ Newbie Season 1\n  │  │  ├─ lesson 01\n  │  │  ├─ lesson 02\n  │  │  ├─ lesson 03\n  │  │  ├─ ...\n  │  ├─ Newbie Season 2\n  │  ├─ ...\n  ├─ Level 2 - Beginner\n  │  ├─ Lower Beginner Season 1\n  │  │  ├─ lesson 01\n  │  │  ├─ lesson 02\n  │  │  ├─ lesson 03\n  │  │  ├─ ...\n  │  ├─ ...\n  ├─ Level 3 - Intermediate\n  │  ├─ ...\n  │  │  ├─ ...\n  │  │  ├─ ...\n  │  ├─ ...\n  │  ├─ ...\n  ├─ Level 4 - Upper Intermediate\n  │  ├─ ...\n  ├─ Level 5 - Advanced\n  │  ├─ ...\n  ```\n\n- To download *Lower Beginner Season 1* we will have to use our web browser to navigate\n  to `lesson 1` of this course (any other lesson url from the **same course** is ok too...).\n\n  Navigation would look like this: `Japanesepod101` → `Level 2 - Beginner` → `Lower Beginner Season 1` → `lesson 01`.\n  \n  Save the URL for `lesson 01` from the address bar, as you will have to provide it to the script later on.\n\n- Create a directory in your PC for this course, and enter into it.\n\n- Run the [language101_scraper.py](language101_scraper.py) script, and follow the instructions.\n  You will have to provide:\n\n  - the email you used to sign up for the course\n  - your password for the course\n  - the course's lesson URL you have navigated through earlier\n    (in our example: `lesson 01` of the `Lower Beginner Season 1` course).\n\n- Alternatively, you can pass the data as parameters when invoking the script:\n\n  ```sh\n  ./language101_scraper.py -u $USERNAME -p $PASSWORD --url YOUR_LESSON_URL\n  ```\n\n- The script will start downloading the MP3/MP4/M4V files into the local navigated folder.\n  Any possible errors would be printed out.\n\n- Output inside folder should look like this:\n\n  ```\n  ├─01 - A Formal Japanese Introduction - JapanesePod101 - Dialogue.mp3\n  ├─01 - A Formal Japanese Introduction - JapanesePod101 - Review.mp3\n  ├─01 - A Formal Japanese Introduction - JapanesePod101 - Main Lesson.mp3\n  ├─02 - Which Famous Tokyo Tower is That - JapanesePod101 - Dialogue.mp3\n  ├─02 - Which Famous Tokyo Tower is That - JapanesePod101 - Main Lesson.mp3\n  ├─02 - Which Famous Tokyo Tower is That - JapanesePod101 - Review.mp3\n  ├─03 - Networking in Japan - JapanesePod101 - Dialogue.mp3\n  ├─03 - Networking in Japan - JapanesePod101 - Main Lesson.mp3\n  ├─03 - Networking in Japan - JapanesePod101 - Review.mp3\n  ├─...\n  ```\n\n## :clipboard: Disclaimer and known issues\n\n- Any usage of the script is under user's responsibility only. Users of the script must act according to site's terms.\n\n- As of today, Innovative Language's terms of use does not forbid usage of crawlers or scrapers on any of their sites.\nThis may change in the future, so be aware.\n\n- If you like the services Innovative Language provides you should consider a monthly subscription. Basic programs start at around $5 per month and include support from native speaker teachers.\n\n- As with all websites, the site's structure may change in the future and thus, as often happens with scraping scripts, deprecate it. It is not really a question of *if* the site's source code will change but rather **when** (so enjoy it while it's still working :grin:).\n\n## :lock: License\n\nAll of the content presented in the websites belongs to the original creators (Innovative Language) and I have nothing to do with it.\n\nThe license below refers only to the script and not to the downloaded content.\n\n[License - MIT](LICENSE.md)\n\n## :speech_balloon: Status and changelog\n\n- **23.03.2022**:\nAdded support for basic video downloading (nothing fancy, just m4v and mp4 files)\nAdded error handling for when a lesson library/lesson contents URL is used instead of the first lesson (user is now warned)\n- **11.05.2021**:\nHeaders and waiting time added, script is alive again.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnedlir%2Flanguagepod101-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnedlir%2Flanguagepod101-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnedlir%2Flanguagepod101-scraper/lists"}