Download Vimeo private videos using v2 playlist.json links. This tool allows you to download video and audio streams separately and merge them into a single file, with options for both automatic best quality selection and manual quality choice.
Original idea and most of the implementation by sk8ordi3.
Source: VideoHelp Forum Thread
This version is modified to:
- Use system tools instead of bundled binaries
- Work natively on Linux systems
- Support both automatic and manual quality selection
- Handle modern Vimeo playlist.json structures
- Python 3.6+
- yt-dlp:
pip install yt-dlp
- ffmpeg: install via your system's package manager
- requests:
pip install requests
- Clone this repository:
git clone https://github.com/yourusername/vimeo-dl-by-playlist.git
cd vimeo-dl-by-playlist
- Install required Python packages:
pip install requests yt-dlp
- Make sure ffmpeg is installed:
# On Ubuntu/Debian:
sudo apt install ffmpeg
# On Fedora:
sudo dnf install ffmpeg
# On Arch Linux:
sudo pacman -S ffmpeg
Basic usage:
python3 vimeo-dl-by-playlist.py
With manual quality selection:
python3 vimeo-dl-by-playlist.py --auto no
Show help:
python3 vimeo-dl-by-playlist.py -h
- Open the Vimeo video page
- Open Developer Tools (F12 in most browsers)
- Go to the Network tab
- Play the video
- Look for a request URL containing "v2/playlist.json"
- Copy the full URL - it should contain "exp" and "hmac" parameters
- Automatic best quality selection
- Manual quality selection option
- Separate video and audio stream download
- Automatic merging using ffmpeg
- Temporary file cleanup
- Progress display during download
- Error handling and user feedback
Downloaded files are organized as follows:
Downloads/
├── Finished/
│ └── Vimeo/
│ └── [resolution]_[title].mp4
└── Temp/
├── [temporary video files]
└── [temporary audio files]
- Works only with v2 playlist.json links
- Links are time-sensitive and expire
- Requires manual extraction of playlist URL
- Some videos might be protected or region-locked
Feel free to open issues and pull requests!