jimbuck / scany

Easily grab recent video data from user, channel, and playlist URLs!
https://www.npmjs.com/package/scany
MIT License
5 stars 0 forks source link
channel feed hacktoberfest node-module playlist scraper youtube

scany

Build Status Code Coverage Dependencies DevDependencies npm Monthly Downloads Total Downloads

YouTube provides basic information on users, channels, and playlists via RSS feeds. This module makes it incredibly easy to access that data without requiring an API key! Not having to sign up for something new is great for hackathons and small projects.

Features

Installation

npm i scany

Example

import { scanFeed, scanVideo } from 'scany';

let singleVideo = await scanVideo('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
let multipleVideos = await scanVideo(['OFbBs9M0cqw', 'https://www.youtube.com/watch?v=beaHxW5o-uw']);

let channelViaUser = await scanFeed('https://www.youtube.com/user/freddiew');
let channelViaChannelId = await scanFeed('https://www.youtube.com/channel/UCG08EqOAXJk_YXPDsAvReSg');
let playlist = await scanFeed('https://www.youtube.com/playlist?list=PLjHf9jaFs8XUXBnlkBAuRkOpUJosxJ0Vx');

console.log(`${playlist.playlistTitle} by ${playlist.channelName}:`);
playlist.videos.forEach((video, i) => {
  console.log(`[${i}] ${video.videoTitle} (${video.channelName})`);
});

API

Methods

scanFeed(url, [options])

Returns a Promise for a FeedResult object.

url

Type: String

The URL to a Youtube channel or playlist. If the URL is a channel it will return the feed of the default "Uploads" playlist.

options

Type: Object

scanVideo(url, [concurrency])

Returns a Promise for one or more VideoResult objects.

url

Type: String String[]

The URL or array of URLs to a Youtube video.

concurrency

Type: Number

Maximum number of videos to query at once. Defaults to 8.

findFeed(video, [options])

Finds a playlist based on the provided video title/channel.

Models

FeedResult

Type: Object

VideoResult

Type: Object

Related

Contribute

  1. Fork it
  2. npm i
  3. npm run watch
  4. Make changes and write tests.
  5. Send pull request! :sunglasses:

License

MIT