# Panopto-Video-DL
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samsonq/panopto-dl/blob/master/LICENSE)
[![Build](https://img.shields.io/circleci/project/github/badges/shields/master)](https://github.com/samsonq/panopto-dl)
Toolkit to download video recordings from Panopto.
### Prerequisites
- [Panopto-Video-DL-browser](https://github.com/Panopto-Video-DL/Panopto-Video-DL-browser)
- Python >= 3.7
## Module Usage
### Installation
Run the command:
```shell
pip install panopto-dl
```
### FFmpeg extension
Since version 1.4.0 _FFmpeg is no longer needed_, but it is still possible to download video
using [ffmpeg](https://ffmpeg.org/download.html) by adding `[ffmpeg]` to the pip command used to install it.
```shell
pip install git+https://github.com/Panopto-Video-DL/Panopto-Video-DL-lib#egg=PanoptoDownloader[ffmpeg]
```
**Note**: FFmpeg **must** be added in the _system PATH_
### Usage
- In a new terminal run the command:
```shell
panoptodownloader
```
- Paste the link automatically copied from [Panopto-Video-DL-browser](https://github.com/Panopto-Video-DL/Panopto-Video-DL-browser)
- Set the destination folder
- Wait for the download to finish
### Use as Python Module
```python
import PanoptoDownloader
URL = "https://****"
PATH = "./output.mp4"
def callback(progress: int):
"""
:param progress: Downloading progress. From 0 to 100
"""
print(f"{progress} / 100")
if __name__ == '__main__':
try:
PanoptoDownloader.download(
URL,
PATH,
callback
)
print("Download completed")
except Exception as e:
print(e)
```
## Application UI
### Installation
1. Install JavaScript browser extension to get M3U8 file path
- Install [TamperMonkey](https://www.tampermonkey.net/) Script-Manager browser extension
- [Chrome](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)
- [Firefox](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/)
- [Other browser](https://www.tampermonkey.net/)
- Install this JavaScript script from [here](https://greasyfork.org/scripts/423661-panopto-video-dl)
2. Clone this repository to local path
- `$ git clone https://github.com/samsonq/panopto-dl.git`
- Install requirements to run application
- `$ pip install -r requirements.txt`
3. Run application
- Enter cloned repository
- `$ cd panopto-dl`
- `$ python main.py`
- A UI (user-interface) should appear within a few seconds with instructions
### UI Application Usage
1. Start application (see above section), the following UI should be displayed:
<img src="assets/app.png" width="500"/>
2. Open Panopto recording on web browser, and click the 'Download' button at the bottom left of the page. This will automatically copy a link for you:
<img src="assets/example.png" width="1000"/>
3. Create a recordings folder in your local directory to store file recordings
- `$ mkdir recordings`
- The supported extensions of the downloaded recording include: `.mp4`, `.mkv`, `.flv`, `.avi`
4. Paste the copied link from step (2) into the application
5. Enter the specified path to save the video recording
- i.e. `./recordings/lecture.mp4`
6. Click the Download button and wait for recording to finish processing
- After the progress bar reaches the end, the video recording should be saved in the specified path
Raw data
{
"_id": null,
"home_page": "https://github.com/samsonq/panopto-dl",
"name": "panopto-dl",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "panopto download video",
"author": "Samson Qian",
"author_email": "samsonqian@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b9/c5/97dd957fa9237332c3c3154ec517d7545778d879faece0ea43e9eabc83e6/panopto_dl-0.1.1.tar.gz",
"platform": null,
"description": "# Panopto-Video-DL\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samsonq/panopto-dl/blob/master/LICENSE)\n[![Build](https://img.shields.io/circleci/project/github/badges/shields/master)](https://github.com/samsonq/panopto-dl)\n\nToolkit to download video recordings from Panopto.\n\n### Prerequisites\n- [Panopto-Video-DL-browser](https://github.com/Panopto-Video-DL/Panopto-Video-DL-browser)\n- Python >= 3.7\n\n## Module Usage\n### Installation\nRun the command:\n```shell\npip install panopto-dl\n```\n### FFmpeg extension\n\nSince version 1.4.0 _FFmpeg is no longer needed_, but it is still possible to download video\nusing [ffmpeg](https://ffmpeg.org/download.html) by adding `[ffmpeg]` to the pip command used to install it. \n```shell\npip install git+https://github.com/Panopto-Video-DL/Panopto-Video-DL-lib#egg=PanoptoDownloader[ffmpeg]\n```\n\n**Note**: FFmpeg **must** be added in the _system PATH_ \n\n### Usage\n\n- In a new terminal run the command:\n```shell\npanoptodownloader\n```\n- Paste the link automatically copied from [Panopto-Video-DL-browser](https://github.com/Panopto-Video-DL/Panopto-Video-DL-browser)\n- Set the destination folder\n- Wait for the download to finish\n\n### Use as Python Module\n\n```python\nimport PanoptoDownloader\n\n\nURL = \"https://****\"\nPATH = \"./output.mp4\"\n\n\ndef callback(progress: int):\n \"\"\"\n :param progress: Downloading progress. From 0 to 100\n \"\"\"\n print(f\"{progress} / 100\")\n\n\nif __name__ == '__main__':\n try:\n PanoptoDownloader.download(\n URL,\n PATH,\n callback\n )\n print(\"Download completed\")\n\n except Exception as e:\n print(e)\n```\n\n\n## Application UI\n### Installation\n1. Install JavaScript browser extension to get M3U8 file path\n\t- Install [TamperMonkey](https://www.tampermonkey.net/) Script-Manager browser extension \n\t\t- [Chrome](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) \n\t\t- [Firefox](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) \n\t\t- [Other browser](https://www.tampermonkey.net/) \n\t- Install this JavaScript script from [here](https://greasyfork.org/scripts/423661-panopto-video-dl)\n\n2. Clone this repository to local path\n\t- `$ git clone https://github.com/samsonq/panopto-dl.git`\n\t- Install requirements to run application\n\t\t- `$ pip install -r requirements.txt`\n\n3. Run application\n\t- Enter cloned repository\n\t- `$ cd panopto-dl`\n\t- `$ python main.py`\n\t- A UI (user-interface) should appear within a few seconds with instructions\n\n### UI Application Usage \n\n1. Start application (see above section), the following UI should be displayed:\n<img src=\"assets/app.png\" width=\"500\"/>\n\n2. Open Panopto recording on web browser, and click the 'Download' button at the bottom left of the page. This will automatically copy a link for you:\n<img src=\"assets/example.png\" width=\"1000\"/>\n\n3. Create a recordings folder in your local directory to store file recordings\n\t- `$ mkdir recordings`\n\t- The supported extensions of the downloaded recording include: `.mp4`, `.mkv`, `.flv`, `.avi`\n4. Paste the copied link from step (2) into the application \n5. Enter the specified path to save the video recording\n\t- i.e. `./recordings/lecture.mp4`\n6. Click the Download button and wait for recording to finish processing\n\t- After the progress bar reaches the end, the video recording should be saved in the specified path\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Download video from Panopto",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/samsonq/panopto-dl"
},
"split_keywords": [
"panopto",
"download",
"video"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "796ff98a20acd772adcbd484476f7e03aecf7a9dad75d149a3b9bd83934755bc",
"md5": "ba4aa3566c5023441c80cddd887ab9cd",
"sha256": "e38d302c83bea2e1339ef38ab0ff8b53fa5a279b7b992f7d3edd4fbf0e6b86f1"
},
"downloads": -1,
"filename": "panopto_dl-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ba4aa3566c5023441c80cddd887ab9cd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 9986,
"upload_time": "2023-08-13T23:47:16",
"upload_time_iso_8601": "2023-08-13T23:47:16.463023Z",
"url": "https://files.pythonhosted.org/packages/79/6f/f98a20acd772adcbd484476f7e03aecf7a9dad75d149a3b9bd83934755bc/panopto_dl-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b9c597dd957fa9237332c3c3154ec517d7545778d879faece0ea43e9eabc83e6",
"md5": "5714748578b0c36162cf773a66654288",
"sha256": "9109fb1983f3d769cf2e3143c6adb3b6bdc0ad2116a50a781a534cf89ee940c9"
},
"downloads": -1,
"filename": "panopto_dl-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "5714748578b0c36162cf773a66654288",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 9497,
"upload_time": "2023-08-13T23:47:18",
"upload_time_iso_8601": "2023-08-13T23:47:18.781702Z",
"url": "https://files.pythonhosted.org/packages/b9/c5/97dd957fa9237332c3c3154ec517d7545778d879faece0ea43e9eabc83e6/panopto_dl-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-13 23:47:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "samsonq",
"github_project": "panopto-dl",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "panopto-dl"
}