diff --git a/YoutubeConfig.json b/YoutubeConfig.json index 7c5357c0f276c5ef287b67ade8e11c222552c8e5..4c36b54e248d97e1baa27c84fb045e22c22350d7 100644 --- a/YoutubeConfig.json +++ b/YoutubeConfig.json @@ -7,7 +7,7 @@ "sourceUrl": "https://plugins.grayjay.app/Youtube/YoutubeConfig.json", "repositoryUrl": "https://futo.org", "scriptUrl": "./YoutubeScript.js", - "version": 157, + "version": 158, "iconUrl": "./youtube.png", "id": "35ae969a-a7db-11ed-afa1-0242ac120002", diff --git a/YoutubeScript.js b/YoutubeScript.js index d67cd12b759670d0370713d703ee8b5e8f3c98ba..03771d67573660381e22e3d6f5f4a517129dd5f3 100644 --- a/YoutubeScript.js +++ b/YoutubeScript.js @@ -452,7 +452,7 @@ source.getContentDetails = (url, useAuth) => { }; } finalResult.getContentChapters = function() { - source.getContentChapters(url, finalResult.__initialData); + return source.getContentChapters(url, finalResult.__initialData); }; return finalResult; @@ -548,8 +548,22 @@ source.getContentChapters = function(url, initialData) { } let videoChapters = []; + + const queryParams = parseQueryString(url); + if(Type.Chapter.SKIPONCE && queryParams["t"]) { + const initialSkip = parseInt(queryParams["t"]); + if(!isNaN(initialSkip)) { + videoChapters.push({ + name: "InitialSkip", + timeStart: parseFloat(-1), + timeEnd: parseFloat(initialSkip), + type: Type.Chapter.SKIPONCE + }); + } + } + try { - videoChapters = extractVideoChapters(initialData) ?? []; + videoChapters = videoChapters.concat(extractVideoChapters(initialData) ?? []); } catch(ex) { //Chapters failed