Common Video Parser

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).

To Do :

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%

Installation

npm i commonvideoparser

yarn add commonvideoparser

Testing

npm run test

yarn run test

If you have jest installed globally, simply run jest in folder

How To Use

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

https://developer.vimeo.com/

Initialize

const vLib = require ( ' commonvideoparser ' ) ; vLib . setGoogleApiKey ( " XXXXXXXXXXXXXXXXXX " ) ; vLib . setVimeoApiConfig ( { CLIENT_ID : " XXXXXXXXXXXXXXXXXX " , CLIENT_SECRET : " XXXXXXXXXXXXXXXXXX " , ACCESS_TOKEN : " XXXXXXXXXXXXXXXXXX " } ) ;

Individual video libraries return promises, can be handled with async/await

Youtube

Single/Multiple Video Links

vLib . youtube . videoData ( " https://www.youtube.com/watch?v=XXXXXXX " ) . then ( result => { } ) . catch ( error => console . log ( error ) ) ; vLib . youtube . videoData ( [ " https://www.youtube.com/watch?v=XXXXXXX " , " https://youtu.be/XXXXXXX " ] )

Playlist Info

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 " ] )

Playlist Video Data

vLib . youtube . playlistVideoData ( " https://www.youtube.com/playlist?list=XXXXXXXXXXX " )

Vimeo

vLib . vimeo . videoData ( " https://vimeo.com/XXXXXXX " )

Dailymotion

vLib . dailymotion . videoData ( [ " http://dai.ly/XXXXXXX " , " http://www.dailymotion.com/video/XXXXXXX " ] )

Google Drive

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 " ] )

Data Returned

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

ES6

If you want to use individual modules, you can set API/Config directly from within.

(For Youtube, Google Drive, Vimeo)