Merge pull request #172 from play-dl/developer
Fixed Playlist toJSON function
This commit is contained in:
commit
f8381800a2
@ -94,7 +94,7 @@ export class YouTubePlayList {
|
||||
this.views = data.views || 0;
|
||||
this.link = data.link || undefined;
|
||||
this.channel = data.author || undefined;
|
||||
this.thumbnail = data.thumbnail || undefined;
|
||||
this.thumbnail = new YouTubeThumbnail(data.thumbnail) || undefined;
|
||||
this.videos = data.videos || [];
|
||||
this.__count++;
|
||||
this.fetched_videos.set(`${this.__count}`, this.videos as YouTubeVideo[]);
|
||||
@ -110,7 +110,7 @@ export class YouTubePlayList {
|
||||
this.id = data.id || undefined;
|
||||
this.url = this.id ? `https://www.youtube.com/playlist?list=${this.id}` : undefined;
|
||||
this.title = data.title || undefined;
|
||||
this.thumbnail = data.thumbnail || undefined;
|
||||
this.thumbnail = new YouTubeThumbnail(data.thumbnail) || undefined;
|
||||
this.channel = data.channel || undefined;
|
||||
this.videos = [];
|
||||
this.videoCount = data.videos || 0;
|
||||
|
||||
@ -152,7 +152,7 @@ export class YouTubeVideo {
|
||||
this.durationInSec = (data.duration < 0 ? 0 : data.duration) || 0;
|
||||
this.uploadedAt = data.uploadedAt || undefined;
|
||||
this.views = parseInt(data.views) || 0;
|
||||
this.thumbnail = data.thumbnail || {};
|
||||
this.thumbnail = new YouTubeThumbnail(data.thumbnail) || {};
|
||||
this.channel = new YouTubeChannel(data.channel) || {};
|
||||
this.likes = data.likes || 0;
|
||||
this.dislikes = data.dislikes || 0;
|
||||
|
||||
@ -49,17 +49,17 @@ export function setCookieToken(options: { cookie: string }) {
|
||||
|
||||
/**
|
||||
* Updates cookies locally either in file or in memory.
|
||||
*
|
||||
*
|
||||
* Example
|
||||
* ```ts
|
||||
* const response = ... // Any https package get function.
|
||||
*
|
||||
*
|
||||
* play.cookieHeaders(response.headers['set-cookie'])
|
||||
* ```
|
||||
* ```
|
||||
* @param headCookie response headers['set-cookie'] array
|
||||
* @returns Nothing
|
||||
*/
|
||||
export function cookieHeaders(headCookie: string[]): void {
|
||||
export function cookieHeaders(headCookie: string[]): void {
|
||||
if (!youtubeData?.cookie) return;
|
||||
headCookie.forEach((x: string) => {
|
||||
x.split(';').forEach((z) => {
|
||||
|
||||
@ -128,7 +128,8 @@ export async function video_basic_info(url: string, options: InfoOptions = {}):
|
||||
cookies: true
|
||||
});
|
||||
}
|
||||
if (body.indexOf('Our systems have detected unusual traffic from your computer network.') !== -1) throw new Error('Captcha page: YouTube has detected that you are a bot!');
|
||||
if (body.indexOf('Our systems have detected unusual traffic from your computer network.') !== -1)
|
||||
throw new Error('Captcha page: YouTube has detected that you are a bot!');
|
||||
const player_data = body
|
||||
.split('var ytInitialPlayerResponse = ')?.[1]
|
||||
?.split(';</script>')[0]
|
||||
|
||||
@ -88,20 +88,20 @@ import { DeezerAlbum, DeezerPlaylist, DeezerTrack } from './Deezer/classes';
|
||||
|
||||
/**
|
||||
* Creates a Stream [ YouTube or SoundCloud ] class from a url for playing.
|
||||
*
|
||||
* Example
|
||||
*
|
||||
* Example
|
||||
* ```ts
|
||||
* const source = await play.stream('youtube video URL') // YouTube Video Stream
|
||||
*
|
||||
*
|
||||
* const source = await play.stream('soundcloud track URL') // SoundCloud Track Stream
|
||||
*
|
||||
*
|
||||
* const resource = createAudioResource(source.stream, {
|
||||
* inputType : source.type
|
||||
* }) // Use discordjs voice createAudioResource function.
|
||||
* ```
|
||||
* @param url Video / Track URL
|
||||
* @param options
|
||||
*
|
||||
* @param options
|
||||
*
|
||||
* - `number` quality : Quality number. [ 0 = Lowest, 1 = Medium, 2 = Highest ]
|
||||
* - `Proxy[]` proxy : sends data through a proxy
|
||||
* - `boolean` htmldata : given data is html data or not
|
||||
@ -201,7 +201,7 @@ export async function search(
|
||||
options: { source: { youtube: 'video' } } & SearchOptions
|
||||
): Promise<YouTubeVideo[]>;
|
||||
export async function search(query: string, options: { limit: number } & SearchOptions): Promise<YouTubeVideo[]>;
|
||||
export async function search(query: string, options? : SearchOptions ): Promise<YouTubeVideo[]>;
|
||||
export async function search(query: string, options?: SearchOptions): Promise<YouTubeVideo[]>;
|
||||
/**
|
||||
* Searches through a particular source and gives respective info.
|
||||
*
|
||||
@ -247,22 +247,22 @@ export async function search(
|
||||
|
||||
/**
|
||||
* Creates a Stream [ YouTube or SoundCloud ] class from video or track info for playing.
|
||||
*
|
||||
* Example
|
||||
*
|
||||
* Example
|
||||
* ```ts
|
||||
* const info = await video_info('youtube URL')
|
||||
* const source = await play.stream_from_info(info) // YouTube Video Stream
|
||||
*
|
||||
*
|
||||
* const soundInfo = await play.soundcloud('SoundCloud URL')
|
||||
* const source = await play.stream_from_info(soundInfo) // SoundCloud Track Stream
|
||||
*
|
||||
*
|
||||
* const resource = createAudioResource(source.stream, {
|
||||
* inputType : source.type
|
||||
* }) // Use discordjs voice createAudioResource function.
|
||||
* ```
|
||||
* @param info YouTube video info OR SoundCloud track Class
|
||||
* @param options
|
||||
*
|
||||
* @param options
|
||||
*
|
||||
* - `number` quality : Quality number. [ 0 = Lowest, 1 = Medium, 2 = Highest ]
|
||||
* - `Proxy[]` proxy : sends data through a proxy
|
||||
* - `boolean` htmldata : given data is html data or not
|
||||
@ -277,13 +277,13 @@ export async function stream_from_info(
|
||||
}
|
||||
/**
|
||||
* Validates url that play-dl supports.
|
||||
*
|
||||
*
|
||||
* - `so` - SoundCloud
|
||||
* - `sp` - Spotify
|
||||
* - `dz` - Deezer
|
||||
* - `yt` - YouTube
|
||||
* @param url URL
|
||||
* @returns
|
||||
* @returns
|
||||
* ```ts
|
||||
* 'so_playlist' / 'so_track' | 'sp_track' | 'sp_album' | 'sp_playlist' | 'dz_track' | 'dz_playlist' | 'dz_album' | 'yt_video' | 'yt_playlist' | 'search' | false
|
||||
* ```
|
||||
@ -322,15 +322,15 @@ export async function validate(
|
||||
}
|
||||
/**
|
||||
* Authorization interface for Spotify, SoundCloud and YouTube.
|
||||
*
|
||||
*
|
||||
* Either stores info in `.data` folder or shows relevant data to be used in `setToken` function.
|
||||
*
|
||||
*
|
||||
* ```ts
|
||||
* const play = require('play-dl')
|
||||
*
|
||||
*
|
||||
* play.authorization()
|
||||
* ```
|
||||
*
|
||||
*
|
||||
* Just run the above command and you will get a interface asking some questions.
|
||||
*/
|
||||
export function authorization(): void {
|
||||
@ -447,7 +447,7 @@ export function authorization(): void {
|
||||
}
|
||||
/**
|
||||
* Attaches paused, playing, autoPaused Listeners to discordjs voice AudioPlayer.
|
||||
*
|
||||
*
|
||||
* Useful if you don't want extra data to be downloaded by play-dl.
|
||||
* @param player discordjs voice AudioPlayer
|
||||
* @param resource A {@link YouTubeStream} or {@link SoundCloudStream}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user