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.
- 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!
npm i scany
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})`);
});
Returns a Promise for a FeedResult
object.
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.
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.
Returns a Promise for one or more VideoResult
objects.
Type: String
String[]
The URL or array of URLs to a Youtube video.
Type: Number
Maximum number of videos to query at once. Defaults to 8
.
Finds a playlist based on the provided video title/channel.
- TODO
Type: Object
- TODO
Type: Object
- TODO
- Use
pully
to easily download a retrieved videos. - Check out
pully-server
for a complete solution to set up an auto-download system.
- Fork it
npm i
npm run watch
- Make changes and write tests.
- Send pull request! 😎
MIT