scany
v1.3.1
Published
Easily grab video data from user, channel, playlist, and video URLs!
Downloads
48
Readme
scany
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
- No configuration necessary!
- Scrapes the web for channels/users/playlists and reads metadata directly from the video feeds.
- Anonymous API, no OAuth key needed!
- Automatically creates all available thumbnail URLs for easy use!
- Complete, built-in typescript typings!
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
limit
:Number
- Limit the number of videos retrieved from the feed URL. Defaults to all (MAX_SAFE_INTEGER
) for playlists and10
for channel urls (recent uploads).scanVideos
:Boolean
- Toggles the retrieval of extra metadata for each video. Defaults totrue
.concurrency
:Number
- Maximum number of videos to query at once. Defaults to8
. Ignored ifscanVideos
is false.
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.
- TODO
Models
FeedResult
Type: Object
- TODO
VideoResult
Type: Object
- TODO
Related
- Use
pully
to easily download a retrieved videos. - Check out
pully-server
for a complete solution to set up an auto-download system.
Contribute
- Fork it
npm i
npm run watch
- Make changes and write tests.
- Send pull request! :sunglasses:
License
MIT