{"id":18340134,"url":"https://github.com/f33rni/lmsdownloader","last_synced_at":"2026-05-09T09:14:27.175Z","repository":{"id":204952960,"uuid":"713048097","full_name":"F33RNI/LMSDownloader","owner":"F33RNI","description":"Download presentations and lectures from LMS using Chrome in headless mode","archived":false,"fork":false,"pushed_at":"2023-11-03T18:40:43.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T20:48:15.086Z","etag":null,"topics":["browser-automation","chrome","headless","lms","mospolytech","selenium"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/F33RNI.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-01T18:23:00.000Z","updated_at":"2023-11-10T18:45:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"f442f37a-a09e-46a0-9a0c-b1a22b0d4354","html_url":"https://github.com/F33RNI/LMSDownloader","commit_stats":null,"previous_names":["f33rni/lmsdownloader"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/F33RNI/LMSDownloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F33RNI%2FLMSDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F33RNI%2FLMSDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F33RNI%2FLMSDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F33RNI%2FLMSDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/F33RNI","download_url":"https://codeload.github.com/F33RNI/LMSDownloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F33RNI%2FLMSDownloader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294085,"owners_count":22987596,"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":["browser-automation","chrome","headless","lms","mospolytech","selenium"],"created_at":"2024-11-05T20:21:06.681Z","updated_at":"2026-05-09T09:14:22.126Z","avatar_url":"https://github.com/F33RNI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏠 LMSDownloader\n### Download presentations and lectures from LMS\n\u003cdiv style=\"width:100%;text-align:center;\"\u003e\n   \u003cp align=\"center\"\u003e\n      \u003cimg src=\"https://badges.frapsoft.com/os/v1/open-source.png?v=103\" \u003e\n   \u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv style=\"width:100%;text-align:center;\"\u003e\n   \u003cp align=\"center\"\u003e\n      \u003ca href=\"https://www.youtube.com/@F3RNI\"\u003e\u003cimg alt=\"YouTube\" src=\"https://img.shields.io/badge/-YouTube-red\" \u003e\u003c/a\u003e\n      \u003ca href=\"https://f3rni.bandcamp.com\"\u003e\u003cimg alt=\"Bandcamp\" src=\"https://img.shields.io/badge/-Bandcamp-cyan\" \u003e\u003c/a\u003e\n      \u003ca href=\"https://open.spotify.com/artist/22PQ62alehywlYiksbtzsm\"\u003e\u003cimg alt=\"Spotify\" src=\"https://img.shields.io/badge/-Spotify-green\" \u003e\u003c/a\u003e\n      \u003ca href=\"https://soundcloud.com/f3rni\"\u003e\u003cimg alt=\"SoundCloud\" src=\"https://img.shields.io/badge/-SoundCloud-orange\" \u003e\u003c/a\u003e\n   \u003c/p\u003e\n\u003c/div\u003e\n\n----------\n\n## 📙 Dependencies\n\n- Google Chrome\n- Python 3.9 or 3.10\n- Pillow\n- pypdf2\n- beautifulsoup4\n- selenium\n\n----------\n\n## ❓ Get started\n\n### Installing using pip\n```\npip install git+https://github.com/F33RNI/LMSDownloader.git\n```\n\n### Usage in terminal\n```\nusage: lmsdownloader [-h] -l LOGIN -p PASSWORD -link LINK_TO_DOWNLOAD -path SAVE_TO [--login-link LOGIN_LINK]\n                     [--wait-between-pages WAIT_BETWEEN_PAGES] [--link-check-regex LINK_CHECK_REGEX]\n                     [--user-agent USER_AGENT] [--window-size WINDOW_SIZE] [--headless] [--no-logging-init]\n\noptions:\n  -h, --help            show this help message and exit\n  -l LOGIN, --login LOGIN\n                        LMS account login\n  -p PASSWORD, --password PASSWORD\n                        LMS account password\n  -link LINK_TO_DOWNLOAD, --link-to-download LINK_TO_DOWNLOAD\n                        LMS link to download\n  -path SAVE_TO, --save-to SAVE_TO\n                        Path to the dir where to save downloaded PDF and TXT\n  --login-link LOGIN_LINK\n                        link to LMS login page\n  --wait-between-pages WAIT_BETWEEN_PAGES\n                        how long to wait after going to next page\n  --link-check-regex LINK_CHECK_REGEX\n                        regex expression to check link_to_download (replace to \"^\" to bypass link check)\n  --user-agent USER_AGENT\n                        browser's user agent to prevent mobile version\n  --window-size WINDOW_SIZE\n                        browser's window size\n  --headless            specify to open Chrome in headless mode\n  --no-logging-init     specify to bypass logging initialization\n```\n\n### Usage as python package\n```python\nfrom LMSDownloader import LMSDownloader\n\n\ndef main():\n    lms_downloader = LMSDownloader.LMSDownloader(\"your_login@gmail.com\",\n                                                 \"your_strong_password\",\n                                                 \"https://online.mospolytech.ru/mod/scorm/view.php?id=158345\",\n                                                 headless=False)\n    lms_downloader.download(\"path/to/download\")\n\n\nif __name__ == \"__main__\":\n    main()\n```\n\n### LMSDownloader()\n#### Initializes LMSDownloader class (just copies fields)\nParams:\n- `lms_login` – LMS account login\n- `lms_password` – LMS account password\n- `link_to_download` – LMS link to download\n- `login_link` – Link to LMS login page\n- `wait_between_pages` – How long to wait after going to next page\n- `link_check_regex` – Regex expression to check link_to_download (replace to \"^\" to bypass link check)\n- `user_agent` - Browser's user agent to prevent mobile version\n- `window_size` - Default browser's window size\n- `headless` – Set True to open Chrome in headless mode\n\n### LMSDownloader.download()\n#### Downloads pages into PDF (and TXT for SCORM book)\nParams:\n- `save_to_directory` – Path to the dir where to save downloaded PDF and TXT\n\nReturns:\n- Paths to downloaded files\n\n----------\n\n## ✨ Contribution\n\n- Anyone can contribute! Just create a pull request\n\n----------\n\n### 🚧 P.S. This project is under development!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff33rni%2Flmsdownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff33rni%2Flmsdownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff33rni%2Flmsdownloader/lists"}