Skip to content

A cli tool to download private videos on vimeo. Written in golang.

License

Notifications You must be signed in to change notification settings

akiomik/vimeo-dl

Folders and files

NameName
Last commit message
Last commit date
May 2, 2024
Nov 5, 2023
Nov 3, 2022
Nov 3, 2022
Feb 5, 2023
Feb 5, 2023
Nov 3, 2022
Nov 3, 2022
May 2, 2024
Jan 13, 2022
Nov 3, 2022
Aug 5, 2024
Jul 10, 2024
Jul 10, 2024
Feb 17, 2025
Feb 17, 2025
Jul 26, 2020

Repository files navigation

vimeo-dl

Go

A tool to download private videos on vimeo.

Usage

vimeo-dl --combine -i ${MASTER_JSON_URL}

Advanced Usage

# Download a video as ${clip_id}-video.mp4 (1080p).
# The highest resolution is automatically selected.
vimeo-dl -i "https://skyfire.vimeocdn.com/xxx/yyy/live-archive/video/240p,360p,540p,720p,1080p/master.json?base64_init=1&query_string_ranges=1"
# Download a video as ${clip_id}-video.mp4 (720p) with the specified user-agent.
vimeo-dl -i "https://skyfire.vimeocdn.com/xxx/yyy/live-archive/video/240p,360p,540p,720p,1080p/master.json?base64_init=1&query_string_ranges=1" \
         --video-id "720p" \
         --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
# Download a video as ${clip_id}.mp4.
vimeo-dl -i "https://8vod-adaptive.akamaized.net/xxx/yyy/sep/video/9f88d1ff,b83d0f9d,da44206b,f34fd50d,f9ebc26f/master.json?base64_init=1" \
         --video-id "b83d0f9d" \
         --audio-id "b83d0f9d" \
         --combine

# Download a video as my-video-file-name.mp4.
vimeo-dl -i "https://8vod-adaptive.akamaized.net/xxx/yyy/sep/video/9f88d1ff,b83d0f9d,da44206b,f34fd50d,f9ebc26f/master.json?base64_init=1" \
         --video-id "b83d0f9d" \
         --audio-id "b83d0f9d" \
         --combine \
         --output-file-name "my-video-file-name"

# The combine option is equivalent to the following command.
vimeo-dl -i "https://8vod-adaptive.akamaized.net/xxx/yyy/sep/video/9f88d1ff,b83d0f9d,da44206b,f34fd50d,f9ebc26f/master.json?base64_init=1" \
         --video-id "b83d0f9d" \
         --audio-id "b83d0f9d"
ffmpeg -i ${clip_id}-video.mp4 -i ${clip_id}-audio.mp4 -c copy ${clip_id}.mp4

Options

Usage:
  vimeo-dl [flags]

Flags:
      --audio-id string           audio id
      --combine                   combine video and audio into a single mp4 (ffmpeg is required)
  -h, --help                      help for vimeo-dl
  -i, --input string              url for master.json (required)
  -o, --output-file-name string   output file name
      --user-agent string         user-agent for request
  -v, --version                   version for vimeo-dl
      --video-id string           video id

Install

Pre-compiled binaries

Currently, Windows, macOS and linux are supported.

  • Download the latest release from the release page.
  • Extract the downloaded .tar.gz file.

go install

# go <1.6
go get -u github.com/akiomik/vimeo-dl

# go >=1.6
go install github.com/akiomik/vimeo-dl

Build

make build

Test

make test

Docker

Using Docker images is useful if you do not have ffmpeg installed.

Build docker image:

# build docker image (with ffmpeg)
docker build -t vimeo-dl .

# build docker image without ffpeg
docker build -t vimeo-dl:no-ffmpeg --target=no-ffmpeg .

Use docker image (instead of the binary):

docker run -v "$(pwd)/downloads:/downloads" vimeo-dl ...