diff --git a/src/YTMusic.ts b/src/YTMusic.ts index cb468d8..9ab49a2 100644 --- a/src/YTMusic.ts +++ b/src/YTMusic.ts @@ -422,7 +422,7 @@ export default class YTMusic { * @param playlistId Playlist ID * @returns Playlist's Videos */ - public async getPlaylistVideos(playlistId: string): Promise[]> { + public async getPlaylistVideos(playlistId: string): Promise { if (playlistId.startsWith("PL")) playlistId = "VL" + playlistId const playlistData = await this.constructRequest("browse", { browseId: playlistId }) diff --git a/src/__tests__/traversing.spec.ts b/src/__tests__/traversing.spec.ts index 405dcfe..ee592eb 100644 --- a/src/__tests__/traversing.spec.ts +++ b/src/__tests__/traversing.spec.ts @@ -5,8 +5,8 @@ import Validator from "validate-any/dist/classes/Validator" import YTMusic from "../" import { - ALBUM_DETAILED, ALBUM_FULL, ARTIST_DETAILED, ARTIST_FULL, PLAYLIST_FULL, PLAYLIST_VIDEO, - SONG_DETAILED, SONG_FULL, VIDEO_DETAILED, VIDEO_FULL + ALBUM_DETAILED, ALBUM_FULL, ARTIST_DETAILED, ARTIST_FULL, PLAYLIST_FULL, SONG_DETAILED, + SONG_FULL, VIDEO_DETAILED, VIDEO_FULL } from "../interfaces" const issues: iValidationError[][] = [] @@ -107,7 +107,7 @@ queries.forEach(query => { it("Get the videos of the first playlist result", async () => { const playlists = await ytmusic.searchPlaylists(query) const videos = await ytmusic.getPlaylistVideos(playlists[0]!.playlistId) - expect(videos, LIST(PLAYLIST_VIDEO)) + expect(videos, LIST(VIDEO_DETAILED)) }) }) }) diff --git a/src/interfaces.ts b/src/interfaces.ts index 9bd0bf5..3896941 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -122,12 +122,3 @@ export const PLAYLIST_FULL: ObjectValidator = OBJECT({ videoCount: NUMBER(), thumbnails: LIST(THUMBNAIL_FULL) }) - -export const PLAYLIST_VIDEO: ObjectValidator> = OBJECT({ - type: STRING("VIDEO"), - videoId: STRING(), - name: STRING(), - artists: LIST(ARTIST_BASIC), - duration: NUMBER(), - thumbnails: LIST(THUMBNAIL_FULL) -}) diff --git a/src/parsers/VideoParser.ts b/src/parsers/VideoParser.ts index aa7c017..11f1e34 100644 --- a/src/parsers/VideoParser.ts +++ b/src/parsers/VideoParser.ts @@ -1,5 +1,5 @@ import { VideoDetailed, VideoFull } from "../" -import { PLAYLIST_VIDEO } from "../interfaces" +import { VIDEO_DETAILED } from "../interfaces" import checkType from "../utils/checkType" import traverse from "../utils/traverse" import traverseList from "../utils/traverseList" @@ -47,13 +47,13 @@ export default class VideoParser { } } - public static parsePlaylistVideo(item: any): Omit { + public static parsePlaylistVideo(item: any): VideoDetailed { const flexColumns = traverseList(item, "flexColumns") const videoId = traverseString(item, "playNavigationEndpoint", "videoId")() || traverseList(item, "thumbnails")[0].url.match(/https:\/\/i\.ytimg\.com\/vi\/(.+)\//)[1] - return checkType>( + return checkType( { type: "VIDEO", videoId, @@ -69,7 +69,7 @@ export default class VideoParser { ), thumbnails: traverseList(item, "thumbnails") }, - PLAYLIST_VIDEO + VIDEO_DETAILED ) } }