From 13551ab67fc8fb1899b5bcbfdec750855b154790 Mon Sep 17 00:00:00 2001 From: Kelvin <kelvin@futo.org> Date: Wed, 20 Dec 2023 00:26:52 +0100 Subject: [PATCH] t parameter chapter support --- YoutubeConfig.json | 2 +- YoutubeScript.js | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/YoutubeConfig.json b/YoutubeConfig.json index 7c5357c..4c36b54 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 d67cd12..03771d6 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 -- GitLab