diff --git a/package-lock.json b/package-lock.json index d7b684a..8cf9950 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "kkr", - "version": "1.2.7", + "version": "1.2.8", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.2.7", + "version": "1.2.8", "license": "GPL-3.0-or-later", "dependencies": { "axios": "^0.21.4", diff --git a/package.json b/package.json index 024ff3d..6f444d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kkr", - "version": "1.2.7", + "version": "1.2.8", "description": "", "main": "index.js", "scripts": { diff --git a/src/core/services/api/youtube.ts b/src/core/services/api/youtube.ts index a74fd1c..ba12552 100644 --- a/src/core/services/api/youtube.ts +++ b/src/core/services/api/youtube.ts @@ -2,6 +2,7 @@ import axios from "axios"; import * as ErrorMessages from "../../messages/error"; export class ParseError extends Error {} +export class VideoPlayabilityStatusError extends Error {} class YouTubeService { static getVideoIdByUrl(videoUrl: string) { let videoId; @@ -42,6 +43,12 @@ class YouTubeService { } const title = playerResponse?.videoDetails?.title as string; if (!playerResponse.streamingData) { + const errorReason = + playerResponse?.playabilityStatus?.errorScreen?.playerErrorMessageRenderer?.subreason?.simpleText || + playerResponse?.playabilityStatus?.errorScreen?.playerErrorMessageRenderer?.subreason?.runs?.[0]?.text; + if (errorReason) { + throw new VideoPlayabilityStatusError(errorReason); + } throw new ParseError(ErrorMessages.NOT_A_LIVE_STREAM); } const mpdUrl = playerResponse.streamingData.dashManifestUrl as string;