/node-youtube

:movie_camera: Youtube to snapshots and GIFs.

Primary LanguageJavaScriptMIT LicenseMIT

Youtube to snapshots and GIFs.

youtube.com

Have you ever dreamt of creating a gif out of a youtube video ? Then you are in the right place

GIF

GIF source

This package allows you to take a screenshot, a gif or a portion out of a youtube video.

This package is the son of these two amazing parents:

Dependencies:

You need to get ffmpeg installed to start using this package.

Installation :

  $ npm install youtube.com

How does it work ?

Instantiate the youtube object :

    var Youtube = require('youtube.com');
    
    // You can instantiate the youtube object using the video url
    var youtube = Youtube('http://www.youtube.com/watch?v=ategZqxHkz4');
    
    // or you can also specify the video id
    var youtube = Youtube('ategZqxHkz4');

####Crop a youtube video :

    youtube.crop('0:05', '0:25', './file.mp4')
        .then(function () {
            console.log("Done");
        }).catch(function (err) {
            console.log("err : ", err)
        });

The .crop() method takes a 4th argument which is the format of the video to download example : ['--format=18'] This format is exactly the same we specify when downloading a youtube video using the Youtube-dl package. Make sure to take a look at it for more info.

####Take a screenshot :

    youtube.snapshot('1:00', './file.jpg')
        .then(function () {
            console.log("Done");
        }).catch(function (err) {
            console.log("err : ", err)
        });

The .snapshot() method also takes the format as its 3rd argument.

####Creating a GIF :

    youtube.gif('0:05', '0:35', './file.gif')
        .then(function () {
            console.log("Done");
        }).catch(function (err) {
            console.log("err : ", err)
        });

The .gif() method takes 2 more arguments, which are size and fps

  • size : The hight and width of the final gif ex : "600x300"
  • fps : an integer representing the fps of the final gif

You can find more details on these 2 arguments on the Fluent-ffmpeg package.

Downloading a video

    youtube.download('file.mp4', format)
        .then(function () {
            console.log("done");
        });

Again, the format is the same as the one mentioned before.