better-ytsr is library that upgrade filter feature from node-ytsr (ytsr is original package and dependency)
NPM:
npm install --save better-ytsr
Yarn:
yarn add better-ytsr
const ytsr = require("better-ytsr");
// below line should be inside of async function
const result = await ytsr("search query");
Searches for the given string
- searchString
- search string to search from
- options
- object with options
- "gl", "hl", "safeSearch", "limit", "pages", "requestOptions" (from node-ytsr)
- exactMatch[Boolean] -> search for actual search query when youtube auto changes searchquery. (when youtube says 'Search Instead for')
- filters[Object] -> exact same with Youtube filters filter value is case-insensitive
- uploadDate[String]:
Last hour
,Today
,This week
,This month
,This year
- type[String]:
Video
,Channel
,Playlist
,Movie
- duration[String]:
Under 4 minutes
,4 - 20 minutes
,Over 20 minutes
- features[Array or String] (can be multiple):
Live
,4K
,HD
,Subtitles/CC
,Creative Commons
,360
,VR180
,3D
,HDR
,Location
(Not sure if it works),Purchased
(Not sure if it works) - sortBy[String]:
Relevance
(default value, same with none option),Upload date
,View count
,Rating
- uploadDate[String]:
Example:
const ytsr = require("better-ytsr");
async function query(q) {
const result = await ytsr(q, { hl: 'ko', gl: 'KR', pages: 1, filters: { type: 'Video', features: ['4K', 'Subtitles/CC'] } });
return result;
}
console.log(query('battlefield 2042 trailer'))
function ytsr.getFilters
is not included in this package.
MIT