Молниеносный пакет для очистки результатов поиска YouTube. Это было сделано для ботов Discord.
npm install scrape-youtube --save
import { youtube } from 'scrape-youtube' ;
// const { youtube } = require('scrape-youtube');
youtube . search ( 'Short Change Hero' ) . then ( ( results ) => {
// Unless you specify a custom type you will only receive 'video' results
console . log ( results . videos ) ;
} ) ;
// or
const { videos } = await youtube . search ( 'Short Change Hero' ) ;
Поддерживаемые типы: video
, live
, movie
, channel
, playlist
и any
. Эти типы используют параметр sp
. Если вы передадите свое собственное значение sp
оно перезапишет типы. Дополнительную информацию смотрите в разделе «Пользовательские фильтры».
youtube . search ( 'lofi hip hop beats to relax/study to' , { type : 'live' } ) . then ( ( results ) => {
console . log ( results . streams ) ;
} ) ;
В каталоге примеров приведены примеры того, какие данные вы получите в результате каждого поиска.
В вашей IDE должно быть автодополнение, работающее с файлами интерфейса, но они здесь на всякий случай.
Если вам нужна помощь в использовании этого в Discord Bot, посетите вики-страницу с примерами TS/JS.
Обратите внимание, что «видео», указанные в ответах плейлистов, будут содержать только 1–2 элемента. Это то, что можно найти в результатах поиска.
Если вы хотите загрузить весь плейлист, рассмотрите возможность использования ytdl-core.
Вы можете передать { sp: 'ABC' }
в качестве второго параметра, чтобы использовать пользовательские фильтры, такие как дата загрузки, продолжительность, функции и т. д.
Вам нужно будет самостоятельно получить параметр SP с YouTube. Пожалуйста, посмотрите это изображение для примера.
Вы можете передать { request: { } }
в качестве второго параметра, чтобы использовать прокси, пользовательские заголовки, агенты и т. д.
См. http.request для получения дополнительной информации.
const options = {
type : 'video' ,
request : {
headers : {
Cookie : 'PREF=f2=8000000' ,
'Accept-Language' : 'de'
}
}
} ;
youtube . search ( 'Poets of the fall' , options ) ;
Например, использование Cookie: 'PREF=f2=8000000'
включит ограниченный режим для фильтрации видео с ненормативной лексикой или темами для взрослых.
Кроме того, 'Accept-Language': 'de'
загрузит YouTube на немецком языке, что иногда приводит к разным заголовкам и ответам на контент.
Вы можете использовать ytdl-core by fent для загрузки дополнительной информации, такой как точные даты загрузки, полные описания, соотношение лайков и антипатий, видеореклама и т. д.
Пожалуйста, посмотрите этот пример в вики, чтобы узнать, как это сделать.
Как упоминалось в выпуске № 57, на некоторых каналах количество подписчиков скрыто. В этом случае пакет по умолчанию будет иметь значение 0.
Маркеры каналов будут использоваться, если они доступны. Некоторые каналы не имеют дескрипторов. В этом случае ссылка на канал будет использовать старый идентификатор, например: /channel/12345
vs /@user
Я рекомендую придерживаться идентификатора, поскольку дескрипторы ненадежны.
any
типов.Этот проект был создан Каином (ksir.pw). Не стесняйтесь обращаться ко мне, если у вас возникнут проблемы с этим пакетом.
Вклады, проблемы и пожелания приветствуются! Не стесняйтесь проверить страницу проблем.
Ставьте ️, если этот проект вам помог!
Copyright © 2018 Каин (ksir.pw). Этот проект имеет лицензию MIT.