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.
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 and 10
for channel urls (recent uploads).scanVideos
: Boolean
- Toggles the retrieval of extra metadata for each video. Defaults to true
.concurrency
: Number
- Maximum number of videos to query at once. Defaults to 8
. Ignored if scanVideos
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.
Type: Object
Type: Object
pully
to easily download a retrieved videos.pully-server
for a complete solution to set up an auto-download system.npm i
npm run watch
MIT