YouTube Scraper for the edge
Table of Contents
Why use this package?
This is a YouTube scraper with zero dependencies. Everything has been coded to have a minimal footprint creating a small package that's aimed at being as fast as possible.
Timings
These are the timings I would get on average over 20 tests, ofcourse the Fetch time depends on how good your connection is to YouTube and how loaded YouTube is at that point.
Type | Fetch Time | Processing Time |
---|---|---|
video |
585.632055 ms | 3.117175 ms |
channel |
494.026065 ms | not tested |
playlist |
569.424545 ms | not tested |
Options
Property | Default | Description |
---|---|---|
language | en |
Set the language that you would like for results to be returned in. A list of supported language types can be found here. |
searchType | video |
Which type to search for on YouTube, supported types are any , channel , live , movie , playlist and video |
` |
||
"Sort by" has not been implemented as of now. | ||
All data is sorted in the default order that YouTube returns these in. | ||
` |
Example Options
You can set the global language which YouTube should return results in or set the return language per search/request:
import youtube from 'scraper-edge'
// This will set the language to French from France globally
const yt = new youtube.default('fr-FR');
// Sets the language communicated to YouTube to Dutch from Belgium for this search
const results = yt.search('Never gonna give you up', {
language: 'nl-BE',
searchType: 'video' // video is the default search type
});
Example Code
CommonJS:
const Scraper = require('scraper-edge').default;
const youtube = new Scraper();
youtube.search('Never gonna give you up').then(results => {
console.log(results.videos[0]);
});
ESModule:
import youtube from 'scraper-edge'
const yt = new youtube.default();
yt.search('Never gonna give you up').then(results => {
console.log(results.videos[0]);
});
Output
{
channel: {
name: 'Official Rick Astley',
link: 'https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw',
verified: true
},
description: "Rick Astley's official music video for “Never Gonna Give You Up” Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe ...",
duration: 213,
duration_raw: "3:33",
id: 'dQw4w9WgXcQ',
link: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
thumbnail: 'https://i.ytimg.com/vi/dQw4w9WgXcQhqdefault.jpg',
shareLink: 'https://youtu.be/dQw4w9WgXcQ',
title: 'Rick Astley - Never Gonna Give You Up (Video)',
uploaded: '11 years ago',
views: 788551856
}
Return Object Structure
{
channels: [
{
channelId: String,
description: String,
link: String,
thumbnails: [
{
url: String,
width: Number,
height: Number
}
],
subscribed: Boolean,
uploadedVideos: Number,
verified: Boolean
}
],
playlists: [
{
preview: [
{
duration: Number,
duration_raw: String,
views: Number,
id: String,
link: String,
thumbnail: String,
title: String,
shareLink: String
}
],
id: String,
link: String,
thumbnail: String,
title: String,
videoCount: Number
}
],
streams: [
{
watching: Number,
channel: {
name: String,
link: String,
verified: Boolean
},
id: String,
link: String,
thumbnail: String,
title: String,
shareLink: String
}
],
videos: [
{
description: String,
duration: Number,
duration_raw: String,
uploaded: String,
views: Number,
channel: {
name: String,
link: String,
verified: Boolean
},
id: String,
link: String,
thumbnail: String,
title: String,
shareLink: String
}
]
}