/popyt

A very easy to use Youtube Data v3 API wrapper.

Primary LanguageTypeScriptThe UnlicenseUnlicense

popyt

Want to access data from the YouTube Data v3 API? Want a Node.js YouTube API wrapper with typings, promises, and caching? No problem! We've got ya covered. npm i popyt

GitHub issues GitHub stars GitHub license Coverage status Actions status Downloads Version

Check out our website!

Examples

Check out the documentation.

Here are some basic methods:

Instantiate the object:

const { YouTube } = require('popyt')
const youtube = new YouTube(apiKey)

Instantiate the object without caching:

const { YouTube } = require('popyt')
const youtube = new YouTube(apiKey, { cache: false })

Get a video by ID:

const video = await youtube.getVideo('dQw4w9WgXcQ')
console.log(video)

You can do the same thing with playlists, channels, and comments by replacing Video with any of them.

Get a video by URL:

const video = await youtube.getVideo('https://youtube.com/watch?v=dQw4w9WgXcQ')
console.log(video)

Get a video by title (or similar title):

const video = await youtube.getVideo('never gonna give you up')
console.log(video)

Search videos:

const videos = await youtube.searchVideos('never gonna give you up', 12)
console.log(videos) // array of 12 partial video objects

Note: This wrapper does not implement every feature of the YouTube API. With a single developer working on it, there just isn't time for everything to be implemented. Some of the objectively most-important features have been added. The limits imposed by the wrapper are not imposed by YouTube.

Development/Contributing

Before committing:

  • Run yarn lint.
  • Run yarn coverage or npm run coverage to check if you've added enough tests. It should display 100% statement, line, and branch coverage.
  • Also, make sure that every test passes.