# vimeodlpy
> A lightweight Python library and CLI to download Vimeo videos using FFmpeg.



---
## Overview
`vimeodlpy` is a minimal yet powerful tool for downloading Vimeo videos through their HLS streams, using `ffmpeg` under the hood. It supports direct and embedded Vimeo player URLs, with optional proxy and referer headers for restricted content.
You can use it as a **Python library** or via a simple **command-line interface**.
---
## ✨ Features
- ✅ Extracts HLS stream URLs automatically from Vimeo pages
- 🎞️ Downloads video using `ffmpeg` with a live progress bar
- 🌍 Supports custom proxy and referer headers
- 🐍 Usable as both CLI and Python module
- 💡 Simple and lightweight, no browser automation or login required
---
## ⚙️ Requirements
- Python **3.11 or newer**
- [FFmpeg](https://ffmpeg.org/download.html) installed and available in your system `PATH`
To verify if FFmpeg is accessible:
```bash
ffmpeg -version
````
---
## 📦 Installation
Install from [PyPI](https://pypi.org/project/vimeodlpy):
```bash
pip install vimeodlpy
```
---
## 🚀 CLI Usage
```bash
vimeodlpy download [VIDEO_URL] [OUTPUT_FILE.mp4]
```
### Example
```bash
vimeodlpy download "https://vimeo.com/123456789" output.mp4
```
### Options
- `--proxy`: Set an HTTP or HTTPS proxy (`http://127.0.0.1:8080`)
- `--referer`: Specify a referer header (for embedded videos)
- `--no-progress`: Disable the FFmpeg download progress bar
- `--check-ffmpeg`: Check if FFmpeg is installed
### Check FFmpeg availability
```bash
vimeodlpy --check-ffmpeg
```
---
## 🐍 Python Usage
```python
from vimeodlpy import downloader
downloader.download(
url="https://vimeo.com/123456789",
output_path="output.mp4",
referer=None,
proxies=None
)
```
### Parameters
- `url` (str): Vimeo video URL
- `output_path` (str): Path to save the `.mp4` file
- `referer` (str | None): Optional HTTP referer
- `proxies` (dict | None): Optional proxies (e.g., `{"http": "...", "https": "..."}`)
---
## 🛠 Development
Clone the repo and install with Poetry:
```bash
git clone https://github.com/moijesuis2enmoi/vimeodlpy.git
cd vimeodlpy
poetry install
```
---
## 🤝 Contributing
Contributions are welcome! If you have suggestions, feature requests or bug reports:
- Open an [issue](https://github.com/moijesuis2enmoi/vimeodlpy/issues)
- Or submit a pull request!
Please make sure to lint and test your code before submitting.
---
## 📄 License
This project is licensed under the **Apache License 2.0**.
See the [LICENSE](./LICENSE) file for details.
---
Made with ❤️ by [moijesuis2enmoi](https://github.com/moijesuis2enmoi)
Raw data
{
"_id": null,
"home_page": null,
"name": "vimeodlpy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "vimeo, downloader, ffmpeg, cli, video, stream",
"author": "moijesuis2enmoi",
"author_email": "arm.ag.31415@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b9/12/02fa231e6fad0f0e23525c809d63ea11edb9cab09ef91c71fb4281f228c9/vimeodlpy-0.1.0.tar.gz",
"platform": null,
"description": "# vimeodlpy\n\n> A lightweight Python library and CLI to download Vimeo videos using FFmpeg.\n\n\n\n\n\n---\n\n## Overview\n\n`vimeodlpy` is a minimal yet powerful tool for downloading Vimeo videos through their HLS streams, using `ffmpeg` under the hood. It supports direct and embedded Vimeo player URLs, with optional proxy and referer headers for restricted content.\n\nYou can use it as a **Python library** or via a simple **command-line interface**.\n\n---\n\n## \u2728 Features\n\n- \u2705 Extracts HLS stream URLs automatically from Vimeo pages\n- \ud83c\udf9e\ufe0f Downloads video using `ffmpeg` with a live progress bar\n- \ud83c\udf0d Supports custom proxy and referer headers\n- \ud83d\udc0d Usable as both CLI and Python module\n- \ud83d\udca1 Simple and lightweight, no browser automation or login required\n\n---\n\n## \u2699\ufe0f Requirements\n\n- Python **3.11 or newer**\n- [FFmpeg](https://ffmpeg.org/download.html) installed and available in your system `PATH`\n\nTo verify if FFmpeg is accessible:\n\n```bash\nffmpeg -version\n````\n\n---\n\n## \ud83d\udce6 Installation\n\nInstall from [PyPI](https://pypi.org/project/vimeodlpy):\n\n```bash\npip install vimeodlpy\n```\n\n---\n\n## \ud83d\ude80 CLI Usage\n\n```bash\nvimeodlpy download [VIDEO_URL] [OUTPUT_FILE.mp4]\n```\n\n### Example\n\n```bash\nvimeodlpy download \"https://vimeo.com/123456789\" output.mp4\n```\n\n### Options\n\n- `--proxy`: Set an HTTP or HTTPS proxy (`http://127.0.0.1:8080`)\n- `--referer`: Specify a referer header (for embedded videos)\n- `--no-progress`: Disable the FFmpeg download progress bar\n- `--check-ffmpeg`: Check if FFmpeg is installed\n\n### Check FFmpeg availability\n\n```bash\nvimeodlpy --check-ffmpeg\n```\n\n---\n\n## \ud83d\udc0d Python Usage\n\n```python\nfrom vimeodlpy import downloader\n\ndownloader.download(\n url=\"https://vimeo.com/123456789\",\n output_path=\"output.mp4\",\n referer=None,\n proxies=None\n)\n```\n\n### Parameters\n\n- `url` (str): Vimeo video URL\n- `output_path` (str): Path to save the `.mp4` file\n- `referer` (str | None): Optional HTTP referer\n- `proxies` (dict | None): Optional proxies (e.g., `{\"http\": \"...\", \"https\": \"...\"}`)\n\n---\n\n## \ud83d\udee0 Development\n\nClone the repo and install with Poetry:\n\n```bash\ngit clone https://github.com/moijesuis2enmoi/vimeodlpy.git\ncd vimeodlpy\npoetry install\n```\n\n---\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! If you have suggestions, feature requests or bug reports:\n\n- Open an [issue](https://github.com/moijesuis2enmoi/vimeodlpy/issues)\n- Or submit a pull request!\n\nPlease make sure to lint and test your code before submitting.\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the **Apache License 2.0**.\nSee the [LICENSE](./LICENSE) file for details.\n\n---\n\nMade with \u2764\ufe0f by [moijesuis2enmoi](https://github.com/moijesuis2enmoi)\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A lightweight Python library and CLI to download Vimeo videos using FFmpeg.",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/moijesuis2enmoi/vimeodlpy#readme",
"Homepage": "https://github.com/moijesuis2enmoi/vimeodlpy",
"Issue Tracker": "https://github.com/moijesuis2enmoi/vimeodlpy/issues",
"Repository": "https://github.com/moijesuis2enmoi/vimeodlpy"
},
"split_keywords": [
"vimeo",
" downloader",
" ffmpeg",
" cli",
" video",
" stream"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "56d1f9de3dd5dcd0c9c4602f864f57c49438b7a1d67f8958100ea50d0a484e21",
"md5": "7a419595c822a4de48ddab27e4afabed",
"sha256": "dd4ce25420d48ff0c1e688df5f11f81c4c5f145dd423f07c218538737c82f3d7"
},
"downloads": -1,
"filename": "vimeodlpy-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7a419595c822a4de48ddab27e4afabed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 14393,
"upload_time": "2025-07-27T04:03:19",
"upload_time_iso_8601": "2025-07-27T04:03:19.728460Z",
"url": "https://files.pythonhosted.org/packages/56/d1/f9de3dd5dcd0c9c4602f864f57c49438b7a1d67f8958100ea50d0a484e21/vimeodlpy-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b91202fa231e6fad0f0e23525c809d63ea11edb9cab09ef91c71fb4281f228c9",
"md5": "ec46d8d68ddd309ec0543e91d45196a6",
"sha256": "b21c7b78b18ef981370c5368f640dd0ff1a8d49e593e4f3f3b276f764a441d15"
},
"downloads": -1,
"filename": "vimeodlpy-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ec46d8d68ddd309ec0543e91d45196a6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 11455,
"upload_time": "2025-07-27T04:03:21",
"upload_time_iso_8601": "2025-07-27T04:03:21.230562Z",
"url": "https://files.pythonhosted.org/packages/b9/12/02fa231e6fad0f0e23525c809d63ea11edb9cab09ef91c71fb4281f228c9/vimeodlpy-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-27 04:03:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "moijesuis2enmoi",
"github_project": "vimeodlpy#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "vimeodlpy"
}