🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

유튜브 팟 플레이어로 보기 버튼 추가

유튜브 동영상을 팟 플레이어로 열 수 있는 버튼을 추가합니다. 기존 영상은 일시 정지 됩니다.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

Upphovsman
채널샤메
Dagliga installationer
0
Totala installationer
100
Betyg
0 0 0
Version
0.4
Skapad
2024-01-11
Uppdaterad
2024-01-16
Size
4,34 KB
Licens
N/A
Gäller för

// ==UserScript==
// @name 유튜브 팟 플레이어로 보기 버튼 추가
// @namespace 유튜브 팟 플레이어로 보기 버튼 추가
// @version 0.2
// @description 유튜브 동영상을 팟 플레이어로 열 수 있는 버튼을 추가합니다, 기존 영상은 일시 정지 됩니다.
// @match *://*.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=YouTube.com
// @author mickey90427
// @license MIT
// ==/UserScript==


(function() {
'use strict';

let videoID = '';

// Extract video ID from the URL
function getVideoID() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('v');
}

// Get the current video's duration in seconds
function getVideoDuration() {
const videoElement = document.querySelector('video');
return videoElement ? videoElement.duration : 0;
}

// Convert time format (hh:mm:ss or mm:ss) to seconds
function timeToSeconds(time) {
const parts = time.split(':');
let hours = 0;
let minutes = 0;
let seconds = 0;

if (parts.length === 3) {
hours = parseInt(parts[0]) || 0;
minutes = parseInt(parts[1]) || 0;
seconds = parseInt(parts[2]) || 0;
} else if (parts.length === 2) {
minutes = parseInt(parts[0]) || 0;
seconds = parseInt(parts[1]) || 0;
}

return hours * 3600 + minutes * 60 + seconds;
}

// Create the PotPlayer URL with the updated start time
function createPotPlayerURL(videoID, startTime) {
const baseURL = 'potplayer:https://www.youtube.com/watch?v=' + videoID;
const params = new URLSearchParams({
t: startTime,
});

return baseURL + '?' + params.toString();
}

// Open the video in PotPlayer with the current playback position
function openInPotPlayer() {
const player = document.querySelector('.html5-main-video');
if (player) {
// Pause YouTube player
player.pause();

// Get the current playback time in seconds
const currentTime = Math.floor(player.currentTime);

// Create the PotPlayer URL
const potPlayerURL = createPotPlayerURL(videoID, currentTime);

// Open the video in PotPlayer with the current playback position
window.location.href = potPlayerURL;
}
}

// Create and append the PotPlayer button
function createPotPlayerButton(videoID) {
const logoContainer = document.getElementById('logo');
if (!logoContainer) {
return;
}

const videoDuration = getVideoDuration();
if (videoDuration === 0) {
setTimeout(function() {
createPotPlayerButton(videoID);
}, 100);
return;
}

// Create the PotPlayer URL
const potPlayerURL = createPotPlayerURL(videoID, '0');

const button = document.createElement('button');
button.textContent = 'Open in PotPlayer';
button.id = 'potplayer-button';
button.setAttribute('data-potplayer-url', potPlayerURL);
button.style.cssText = `
background-color: #ff0;
color: #000;
border: none;
padding: 10px;
margin-left: 10px;
cursor: pointer;
border-radius: 5px;
`;

button.addEventListener('click', openInPotPlayer);

logoContainer.parentNode.insertBefore(button, logoContainer.nextSibling);
}

function waitForLogo() {
const logoContainer = document.getElementById('logo');
if (logoContainer) {
videoID = getVideoID();
if (videoID) {
createPotPlayerButton(videoID);
}
} else {
setTimeout(waitForLogo, 100);
}
}

waitForLogo();
})();