A Node.js CLI to easily transfer your videos from Vimeo to YouTube
Download all your videos from Vimeo with the push of a button, and upload them to YouTube with all their metadata.
- Highly customizable
- Download and upload videos in parallel
- Keep metadata
- Transfer directly without any disk write
- Node.js
>= 9 - Vimeo API keys: you must first create an application and create an access token
- YouTube API keys: follow the steps of the section "Step 1: Turn on the YouTube Data API" and download your API keys
- A good Internet connection
Clone this repo:
git clone https://github.com/hichamelkaddioui/vimeo-to-youtubeInstall dependencies:
npm installCreate a .env file based on .env.dist, fill it with your API keys and run
npm startYou can set these variables either by editing the .env file or by setting them before running the CLI. E.g.:
LOGGER_LEVEL=debug npm startData folder ($DATA_FOLDER) and config folder ($CONFIG_FOLDER) are resolved with platform-folders.
| Key | Type | Description | Default |
|---|---|---|---|
VIMEO_CLIENT_ID |
String |
The Client ID of your Vimeo application | Required |
VIMEO_CLIENT_SECRET |
String |
The Client Secret of your Vimeo application | Required |
VIMEO_ACCESS_TOKEN |
String |
A generated Access Token | Required |
VIMEO_VIDEOS_PER_PAGE |
Number |
The number of videos to fetch per request. More info here | 100 |
VIMEO_VIDEOS_FIELDS |
String |
The fields of the video object to filter from the Vimeo API. More info here | 'resource_key,name,description,tags,files,download,privacy,categories' |
| Key | Type | Description | Default |
|---|---|---|---|
YOUTUBE_CLIENT_ID |
String |
The Client ID of your YouTube application | Required |
YOUTUBE_PROJECT_ID |
String |
The Project ID of your YouTube application | Required |
YOUTUBE_AUTH_URI |
String |
OAuth2 auth URI | 'https://accounts.google.com/o/oauth2/auth' |
YOUTUBE_TOKEN_URI |
String |
OAuth2 token URI | 'https://www.googleapis.com/oauth2/v3/token' |
YOUTUBE_AUTH_PROVIDER_X509_CERT_URL |
String |
OAuth2 certs URL | 'https://www.googleapis.com/oauth2/v1/certs' |
YOUTUBE_CLIENT_SECRET |
String |
The Client Secret of your YouTube application | Required |
YOUTUBE_REDIRECT_URIS |
String |
OAuth2 redirect URIs | 'urn:ietf:wg:oauth:2.0:oob,http://localhost' |
YOUTUBE_TOKEN_PATH |
String |
The path of the file in which to store the access token | '$CONFIG_FOLDER/vimeo-to-youtube/youtube-oauth2-credentials.json' |
| Key | Type | Description | Default |
|---|---|---|---|
DB_FILENAME |
String |
The path of the local database file | '$DATA_FOLDER/vimeo-to-youtube/db/videos.db' |
DOWNLOAD_DEST |
String |
The path of the folder into which store the downloaded video files | '$DATA_FOLDER/vimeo-to-youtube/files' |
DOWNLOAD_PARALLEL_VIDEOS |
Number |
The number of videos to download in parallel | 3 |
UPLOAD_PARALLEL_VIDEOS |
Number |
The number of videos to upload in parallel | 10 |
LOGGER_LEVEL |
String |
The level of log to display | 'info' |
