// ==UserScript==
// @name New script s
// @namespace Violentmonkey Scripts
// @match *://sploop.io/*
// @grant none
// @version 1.0
// @author -
// @license mit
// @description I am vague to give it a name and are grinder the text below
// @description 27/1/2025, 17:31:27
// ==/UserScript==
// Insert the music player container into the body of the page
const container = document.createElement('div');
container.id = 'musicContainer';
container.style = `
position: absolute;
top: 20px;
left: 20px;
background: rgba(0, 0, 0, 0.8);
border-radius: 10px;
padding: 10px;
z-index: 10000;
color: white;
font-family: Arial, sans-serif;
font-size: 14px;
max-width: 200px;
`;
document.body.appendChild(container);
// Create a title
const title = document.createElement('h3');
title.textContent = 'Music Player';
title.style = 'margin: 0 0 10px 0; text-align: center;';
container.appendChild(title);
// Create a select dropdown for songs
const select = document.createElement('select');
select.id = 'songSelect';
select.style = 'width: 100%; margin-bottom: 10px;';
container.appendChild(select);
// Add songs to the select dropdown (only with "Song {number}")
const songs = [
{ id: 'r_1LUSn25J4', name: 'Song 1', lyrics: 'Hello, is it me you\'re looking for?' },
{ id: '1_t2pQqkmtg', name: 'Song 2', lyrics: 'I see you driving ’round town with the girl I love' },
{ id: 'anLOn1B-6Ns', name: 'Song 3', lyrics: 'First things first, I\'ll say all the words inside my head' },
{ id: 'qlzcHe_gusE', name: 'Song 4', lyrics: 'Shoes on, get up in the morn’ cup of milk, let’s rock and roll' },
{ id: 'Inf4tDEgyYw', name: 'Song 5', lyrics: 'I want it, I got it' },
{ id: 'J_Jt3VOVpoI', name: 'Song 6', lyrics: 'The club isn’t the best place to find a lover' },
{ id: 'OVh0bMNSFss', name: 'Song 7', lyrics: 'I got my peaches out in Georgia (Oh yeah, s**t)' },
{ id: 'riqwrGoklj8', name: 'Song 8', lyrics: 'Baby girl, I’ll be your man' },
{ id: 'w-sQRS-Lc9k', name: 'Song 9', lyrics: 'I’m not fazed, only here to sin' },
{ id: 'ELCVwv1T-aE', name: 'Song 10', lyrics: 'White shirt now red, my bloody nose' },
{ id: 'z9nHtotESH4', name: 'Song 11', lyrics: 'Seasons change and our love went cold' },
{ id: 'R_BFdeFtWC8', name: 'Song 12', lyrics: 'Astro, yeah, Sun is down, freezin’ cold' },
{ id: 'kvHvxKHYMBA', name: 'Song 13', lyrics: 'I got the eye of the tiger, a fighter' },
{ id: '9Zj0JOHJR-s', name: 'Song 14', lyrics: 'I found a love, to carry more than just my secrets' },
{ id: 'Qx2gvHjNhQ0', name: 'Song 15', lyrics: 'I love it when you call me señorita' },
{ id: 'n8X9_MgEdCg', name: 'Song 16', lyrics: 'So baby, pull me closer in the backseat of your Rover' },
{ id: '9bZkp7q19f0', name: 'Song 17', lyrics: 'Oppa Gangnam Style!' },
{ id: 'uZQNC3awICU', name: 'Song 18', lyrics: 'When I’m without you so insecure' },
{ id: 'ih2xubMaZWI', name: 'Song 19', lyrics: 'Lately I’ve been, I’ve been losing sleep' },
{ id: 'oC-GflRB0y4', name: 'Song 20', lyrics: 'And the players gonna play, play, play, play, play' },
{ id: 'bPs0xFd4skY', name: 'Song 21', lyrics: 'Found you when your heart was broke' },
{ id: 'wJnBTPUQS5A', name: 'Song 22', lyrics: 'Thank you, next' },
{ id: 'HIza2rY23Tk', name: 'Song 23', lyrics: 'I’m gonna live like tomorrow doesn’t exist' },
{ id: '8vJiSSAMNWw', name: 'Song 24', lyrics: 'I want your love and I want your revenge' }
];
songs.forEach((song) => {
const option = document.createElement('option');
option.value = song.id;
option.textContent = song.name;
select.appendChild(option);
});
// Control buttons
const playButton = document.createElement('button');
playButton.textContent = '▶️ Play';
playButton.style = 'width: 48%; margin-right: 2%;';
container.appendChild(playButton);
const stopButton = document.createElement('button');
stopButton.textContent = '⏹️ Stop';
stopButton.style = 'width: 48%;';
container.appendChild(stopButton);
// Player container (hidden)
const playerContainer = document.createElement('div');
playerContainer.id = 'musicPlayer';
playerContainer.style = 'display: none;';
container.appendChild(playerContainer);
// Create subtitle container (floating at the center of the screen)
const subtitlesContainer = document.createElement('div');
subtitlesContainer.id = 'subtitles';
subtitlesContainer.style = `
position: fixed;
bottom: 50px;
left: 50%;
transform: translateX(-50%);
color: white;
font-size: 20px;
font-family: Arial, sans-serif;
text-align: center;
z-index: 10001;
display: none;
`;
document.body.appendChild(subtitlesContainer);
// Load YouTube API
const script = document.createElement('script');
script.src = 'https://www.youtube.com/iframe_api';
document.head.appendChild(script);
// Global variable for the player
let player;
// Initialize the player when the API is ready
window.onYouTubeIframeAPIReady = function () {
player = new YT.Player('musicPlayer', {
height: '0',
width: '0',
videoId: '',
events: {
onReady: () => console.log('YouTube Player Ready'),
onStateChange: (event) => {
if (event.data === YT.PlayerState.ENDED) {
playButton.textContent = '▶️ Play';
subtitlesContainer.style.display = 'none'; // Hide subtitles when finished
}
}
}
});
};
// Play button functionality
playButton.addEventListener('click', () => {
const selectedSongId = select.value;
const song = songs.find(song => song.id === selectedSongId);
if (player && selectedSongId) {
player.loadVideoById(selectedSongId);
player.playVideo();
playButton.textContent = '⏸️ Pause';
// Show subtitles during playback
subtitlesContainer.style.display = 'block';
displayLyrics(song.lyrics);
}
});
// Function to display lyrics word by word
function displayLyrics(lyrics) {
let words = lyrics.split(' ');
let index = 0;
// Clear previous subtitles
subtitlesContainer.textContent = '';
// Update subtitle every 1 second
let interval = setInterval(() => {
if (index < words.length) {
subtitlesContainer.textContent += words[index] + ' ';
index++;
} else {
clearInterval(interval);
}
}, 1000);
}
// Stop button functionality
stopButton.addEventListener('click', () => {
if (player) {
player.stopVideo();
playButton.textContent = '▶️ Play';
subtitlesContainer.style.display = 'none'; // Hide subtitles when stopped
}
});