An easy way to get info from API of common video parsing websites.
Supported as of now
- Youtube
- Vimeo
- Dailymotion
- Google Drive (video files)
Disclaimer: You have to provide your own API Authentication info for Vimeo & Youtube/Google Drive (can use same key for both technically).
- Add typings file
- Non specifc get function that auto parses link and gets data
- Make returned data fields/objects more consistent
(1.1.0)
- Uses bluebird promises and axios now instead of request-promise
- optimized code, reduced average time for multi-requests by atleast 40%
npm i commonvideoparser
yarn add commonvideoparser
npm run test
yarn run test
If you have jest installed globally, simply run jest
in folder
Make sure you have enabled Youtube & Google Drive API for your app key;
This app doesn't use oAuth, use simple API key
https://console.developers.google.com
Get Vimeo auth config
const vLib = require('commonvideoparser');
vLib.setGoogleApiKey("XXXXXXXXXXXXXXXXXX");
vLib.setVimeoApiConfig({
CLIENT_ID:"XXXXXXXXXXXXXXXXXX",
CLIENT_SECRET:"XXXXXXXXXXXXXXXXXX",
ACCESS_TOKEN:"XXXXXXXXXXXXXXXXXX"
});
// These functions also return the config obj/key after setting it
vLib.youtube.videoData("https://www.youtube.com/watch?v=XXXXXXX")
.then(result=>{
// do whatever with data
})
.catch(error=>console.log(error));
// Shortened links also work
// https://youtu.be/XXXXXXXXXXX
vLib.youtube.videoData("https://www.youtube.com/watch?v=XXXXXXX","https://youtu.be/XXXXXXX")
// Can also pass array of videos
vLib.youtube.videoData([link1, link2])
Basic Playlist Info, not the actual videos of the playlist
vLib.youtube.playlistInfoData("https://www.youtube.com/playlist?list=XXXXXXXXXXX")
vLib.youtube.playlistInfoData("https://www.youtube.com/playlist?list=XXXXXXXXXXX",
"https://www.youtube.com/playlist?list=XXXXXXXXXXX")
// Can also pass array
vLib.youtube.playlistInfoData([link1,link2])
vLib.youtube.playlistVideoData("https://www.youtube.com/playlist?list=XXXXXXXXXXX")
// Same as others, can pass array of playlist links
vLib.vimeo.videoData("https://vimeo.com/XXXXXXX")
// Same as others, can pass array of video links
vLib.dailymotion.videoData([
"http://dai.ly/XXXXXXX",
"http://www.dailymotion.com/video/XXXXXXX"
])
// can pass array and shortened urls
vLib.dailymotion.videoData([
"https://drive.google.com/file/d/XXXXXXXXXXXXXXXXXXXXXXXXXXX/preview",
"https://docs.google.com/file/d/XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"https://drive.google.com/open?id=XXXXXXXXXXXXXXXXXXXXXXXXXXX"
])
// Can pass array and different variations of the link
Youtube | Vimeo | Dailymotion | Google Drive |
---|---|---|---|
title | name | title | title |
duration | duration | duration | duration |
link | link | link | link |
embeddable | user | createdTime | size |
channel | description | dimensions | createdTime |
description | created_time | thumbnail | thumbnail |
published | release_time | dimensions | |
thumbnail | dimensions | ||
thumbnail |
If you want to use individual modules, you can set API/Config directly from within.
(For Youtube, Google Drive, Vimeo)
import { vimeo as vm } from 'commonvideoparser';
vm.setVimeoApiConfig({
CLIENT_ID:"XXXXXXXXXXXXXXXXXX",
CLIENT_SECRET:"XXXXXXXXXXXXXXXXXX",
ACCESS_TOKEN:"XXXXXXXXXXXXXXXXXX"
});