Music Player

Displays a button labeled "Songs" that opens a window with play buttons for different songs. Each song can be played individually with pause, stop, and volume adjustment functionalities.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name Music Player
// @namespace http://tampermonkey.net/
// @version 0.1
// @license Apache License 2.0
// @description Displays a button labeled "Songs" that opens a window with play buttons for different songs. Each song can be played individually with pause, stop, and volume adjustment functionalities.
// @match https://*/*
// @match http://*/*
// @icon https://cdn.dribbble.com/users/747620/screenshots/5451284/glitch_text.gif
// @grant GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    let musicPlayerWindow = null; // Track the music player window

    // Create the button
    const songsButton = document.createElement('button');
    songsButton.textContent = 'Songs';
    songsButton.style.backgroundColor = 'black';
    songsButton.style.color = 'white';
    songsButton.style.position = 'fixed';
    songsButton.style.top = '32.5%';
    songsButton.style.left = '20px';
    songsButton.style.zIndex = '9999';
    songsButton.addEventListener('click', openMusicPlayer);
    document.body.appendChild(songsButton);

    // Function to open the music player window
    function openMusicPlayer() {
        if (musicPlayerWindow && !musicPlayerWindow.closed) {
            musicPlayerWindow.focus(); // If window is already open, focus on it
            return;
        }

        musicPlayerWindow = window.open('', '_blank', 'width=400,height=300,top=100,left=100');
        musicPlayerWindow.document.title = 'Playlist'; // Set window title to "Playlist"
        musicPlayerWindow.document.body.style.backgroundColor = 'black'; // Set background color to black

        // Disable closing the window
        musicPlayerWindow.addEventListener('beforeunload', function(event) {
            event.preventDefault();
            event.returnValue = '';
        });

        // Create a div for the title
        const titleDiv = document.createElement('div');
        titleDiv.textContent = 'Playlist';
        titleDiv.style.color = 'white'; // White text
        titleDiv.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        titleDiv.style.fontSize = '36px'; // Larger font size
        titleDiv.style.fontWeight = 'bold'; // Bold font
        titleDiv.style.textAlign = 'center'; // Center-align text
        titleDiv.style.marginTop = '20px'; // Add margin from the top
        musicPlayerWindow.document.body.appendChild(titleDiv);

        // Create audio elements for each song
        const songs = [
            { name: 'After Dark', url: 'https://drive.google.com/uc?export=download&id=1YBpNKw-Sl6wTclJ4mliXYaSrK1ldTr1P' },
            { name: 'Sonic.exe music', url: 'https://drive.google.com/uc?export=download&id=1Xx5r3d7LmDk8hVkSvf6-WMOnxJRvjO23' },
            { name: 'PATD Emperor\'s New Clothes', url: 'https://drive.google.com/uc?export=download&id=1Yew0YY5Iwdm4VbjjxkjWBI4qtpn-lR-I' },
            { name: 'PATD This Is Gospel', url: 'https://drive.google.com/uc?export=download&id=1YnG5miZNCQMu5S0BC5y6iMThVBz7Z26P' },
            { name: 'PATD Death of a Bachelor', url: 'https://drive.google.com/uc?export=download&id=1Ys1s4z-ClOnb8T3BDvnO-CE9_PouHHr1' },
            // RED songs
            { name: 'RED Part that\'s holding on', url: 'https://drive.google.com/uc?export=download&id=1Yz9bjVO98c2F-kIU3iUpRGRWbw7aZuFn' },
            { name: 'RED Falling sky', url: 'https://drive.google.com/uc?export=download&id=1ZDvKvs2PucLdsIkVFRl-KgXtZqn4zbtO' },
            { name: 'RED What you keep alive', url: 'https://drive.google.com/uc?export=download&id=1ZH22WharprXcc0gz4jJuK89W6-RTHCLo' },
            { name: 'RED Losing control', url: 'https://drive.google.com/uc?export=download&id=1ZJ7mtXWoDvQ1H1GDi7moNfsw18VhwEth' },
            { name: 'RED If I break', url: 'https://drive.google.com/uc?export=download&id=1ZOu0CpUygSRf4nSAZ3Lgj7gl0v4gr5Q-' },
            { name: 'RED Yours again', url: 'https://drive.google.com/uc?export=download&id=1ZRiAKf_Z9jI3o9fqU1fprMPNLUiyKPjj' },
            { name: 'RED ~Darkest Part~', url: 'https://drive.google.com/uc?export=download&id=1ZWXPIR422spsYN-zveVePC4DttoHldr6' },
            { name: 'RED Still alive', url: 'https://drive.google.com/uc?export=download&id=1ZZzVEtK97eFFz-eW2A65SuvpeFpuD5In' },
            { name: 'RED Coming apart', url: 'https://drive.google.com/uc?export=download&id=1Z_3b5QdrWjqkQXP4TJBVVAoJqtwBKds7' },
            { name: 'RED As you go', url: 'https://drive.google.com/uc?export=download&id=1ZbJRxKSys2_4_S985XG6K0K6xyf2Dof1' },
            { name: 'RED Hold me now', url: 'https://drive.google.com/uc?export=download&id=1ZdcjjsUMDSydQBzr1YD7JPxaY5ryumZ9' },
            { name: 'RED Death of me', url: 'https://drive.google.com/uc?export=download&id=1Zf18ekSaxJ6shtmMxY0-QSj6YlL0GNxA' },
            { name: 'RED Fight to forget', url: 'https://drive.google.com/uc?export=download&id=1ZgzE8BpU7SRFzDKRchfMlzzBilUNQNMV' },
            // End of RED songs
            { name: 'Sub Urban CRADLES', url: 'https://drive.google.com/uc?export=download&id=1Zit2CuvdwRrBK4rqjlIu9QwgCESEAaXG' },
            { name: 'SWEET SWEET VICTORY', url: 'https://drive.google.com/uc?export=download&id=1Zj4L6Red0a3sTAaQ0_X1QqXP3TwhdvCW' },
            { name: 'Astronomia', url: 'https://drive.google.com/uc?export=download&id=1Znxa2Jz7nEigFY2U1XOmXm0czSsWWcgA' },
            { name: 'Afrojack Ten Feet Tall', url: 'https://drive.google.com/uc?export=download&id=1Zrz9Z4qXbLFDlXU2SdaN1k3O15TrqDi-' },
            { name: 'FOB The Phoenix', url: 'https://drive.google.com/uc?export=download&id=1ZyxjFK4sGg_NYbNHOgnpNukHTUKkFlNU' },
            { name: 'FOB Light \'Em Up', url: 'https://drive.google.com/uc?export=download&id=1ZyzJJPWRqDYr3Izp81jWZfPxAVCU8x7f' },
            { name: 'FOB Uma Thurman', url: 'https://drive.google.com/uc?export=download&id=1ZzEFkeX7nBrN2loIjtN4idiVPHQHCHp3' },
            { name: 'FOB Centuries', url: 'https://drive.google.com/uc?export=download&id=1_0OfS0HfG5RkZCvmj48DzK92sQHFf2Gn' },
            { name: 'FOB Irresistible', url: 'https://drive.google.com/uc?export=download&id=1_0wu35Giy_94sT5CBU4nbsWv-YTVMp5Z' },
            { name: 'FOB Immortals', url: 'https://drive.google.com/uc?export=download&id=1_6OcWd4YqPh3o-CSkxpnJ1ErusfIvRSW' },
            { name: 'FOB Alone Together', url: 'https://drive.google.com/uc?export=download&id=1_AFCk-GYJXgafPUyJPI5q5_rK3alQ3DV' },
            { name: '24KGoldn Mood', url: 'https://drive.google.com/uc?export=download&id=1_FGlouBMJAZ5sRKMGrabYIP-baGeTwgZ'},
            { name: 'FRIENDS Marshmello & Anne-Marie', url: 'https://drive.google.com/uc?export=download&id=1_JBfwobslMwFApDylqh6_1M6t4ixYbb5' },
            { name: 'Feel This Moment Pitbull', url: 'https://drive.google.com/uc?export=download&id=1_RmyXuwWGc5G0-J20QwE1xopbta2_zep' },
            { name: 'Without me - Halsey', url: 'https://drive.google.com/uc?export=download&id=1_cA5-7LaGMFwXjsp-SmHtqyNuaXsTTAn' },
            { name: 'Party Rock', url: 'https://drive.google.com/uc?export=download&id=1_d-Zb7TACWKVCPxplOjP867ObGFbgXXr' },
            { name: 'Come & go - marsh. x juice.', url: 'https://drive.google.com/uc?export=download&id=1_dLkstzsbFWTlse5Z3EGzUr07YvNF5k9' },
            { name: 'Work - Apashe', url: 'https://drive.google.com/uc?export=download&id=1_daovBcjhYa6bMzCvO3IGqN1p0FME3l_' },
            { name: 'Mr Kitty After Dark TrackGonEat Remix', url: 'https://drive.google.com/uc?export=download&id=1_hztVjtLM_XnJJFkAKi3slQCrkxJn92Z' },
            { name: 'DJ Tiesto Remix KRAKEN REMIX', url: 'https://drive.google.com/uc?export=download&id=1_l20NFJIR7WhyFvOeGuxuTvVqfax_1sm' },
            { name: 'No Hands - Roscoe Dash', url: 'https://drive.google.com/uc?export=download&id=1_ta1L0DhdRMJhj0avlZd48e0qBgqAVWE' },
            { name: 'Runaway (U and I)', url: 'https://drive.google.com/ucexport=download&id=1aA5VXujpOTX_glzkctaGUyYo2JsuWhX0' },
            { name: 'Scared Of The Dark (MM)', url: 'https://drive.google.com/uc?export=download&id=1_v8vERcj3KL7nWwoMZTrkZ7q6YeNfrOE' },
            { name: 'Start A Riot (MM)', url: 'https://drive.google.com/uc?export=download&id=1_wCG_u-Rsux4TI9oLbNE-N66jxUteEal' },
            { name: 'What\'s up Danger (MM)', url: 'https://drive.google.com/uc?export=download&id=1a-f7KjMsQ7Tp7OTy6dPspe1aGA7Dv2Ik' },
            { name: 'Elevate (MM)', url: 'https://drive.google.com/uc?export=download&id=1a53C0Lb6p5wjND4PiyUbVi0-CzZ7YU5E' },
            { name: 'Galantis Runaway', url: 'https://drive.google.com/uc?export=download&id=1aA5VXujpOTX_glzkctaGUyYo2JsuWhX0' },
            { name: 'BT Rusted from the rain', url: 'https://drive.google.com/uc?export=download&id=1aB-I7gPgLxcR1Q5LCQzoK3CLwdkhXPED' },
            { name: 'BT Try Honesty', url: 'https://drive.google.com/uc?export=download&id=1aBnawTgK_Lg19zmW-Bju5IPwLoY_ZfWB' },
            { name: 'BT Fallen Leaves', url: 'https://drive.google.com/uc?export=download&id=1aBu9fBeSnDLTY5xwME__D0QnS4eoOyPZ' },
            { name: 'BT Devil in a midnight mass', url: 'https://drive.google.com/uc?export=download&id=1aESu4iUvwg9lqQ5JQ2n5RJFGW9uwAfGq' },
            { name: 'BT Devil on my shoulder', url: 'https://drive.google.com/uc?export=download&id=1aFOsoDXSV_5zU0vFObU4jlpJ0LuZovlG' },
            { name: 'GS Sarcasm', url: 'https://drive.google.com/uc?export=download&id=1aOnfPaeiTc5XeIFonlKd381-RuMkorZQ' },
            { name: 'GS Keep Myself Alive', url: 'https://drive.google.com/uc?export=download&id=1aQ0lTuY3wiZlPNeVfvUxf40yt3Kwb7hq' },
            { name: 'GS Don\' you dare forget the sun', url: 'https://drive.google.com/uc?export=download&id=1aR-z5y1srqYUV3RBHJvW1De9nEzZpwsb' },
            { name: 'GS Problematic', url: 'https://drive.google.com/uc?export=download&id=1aTmv2ExwMr3vsVGv_9G2ynTuiAmoMEZ0' },
            { name: 'GS Built for blame', url: 'https://drive.google.com/uc?export=download&id=1aUrABLtmdf7AG_BIDeLY6JfXURhWa5Ti' },
            { name: 'GS Buried Alive', url: 'https://drive.google.com/uc?export=download&id=1aWj-KvLyMmI-H8LBc4UuYEIRXl9nhpyR' },
            { name: 'GS Suffer', url: 'https://drive.google.com/uc?export=download&id=1aX1-Va3hpzwC3o0Zi-JQWBS9WKEkBReS' },
            { name: 'GS Under My Skin', url: 'https://drive.google.com/uc?export=download&id=1aZXuSw-n9RnBQDpzJp8K9AWJ1ZtvzLH2' },
            { name: 'GS Relax, Relapse', url: 'https://drive.google.com/uc?export=download&id=1ag6CBX_PCjB15pfqX0dVRtr17DqnV5tJ' },
            { name: 'GS Second Guessing', url: 'https://drive.google.com/uc?export=download&id=1ahC6dfouvNPnC9XNgC3Lv9zwIeD8nXEo' },
            { name: 'GS Voodoo', url: 'https://drive.google.com/uc?export=download&id=1at0eLRyuSXOFWKYN6FmYhNVcmKMLgbHL' },
            { name: 'GS The Dead Days', url: 'https://drive.google.com/uc?export=download&id=1aulA1xem_c1b-UihGxcKP01FbVWHvNCs' },
            { name: 'GS Silence', url: 'https://drive.google.com/uc?export=download&id=1avA0g-2Lyz1O7Jto5HArIVZ7i9C68xO9' },
            { name: 'GS Dance with the dead', url: 'https://drive.google.com/uc?export=download&id=1axbGe4pjLB9XqrVjbWczCWnVscAFJ8Tp' },
            { name: 'GS Goodbye Soul', url: 'https://drive.google.com/uc?export=download&id=1b-BIOaCcEA6bPpPfu-s_O3CKVaSGTJAf' },
            { name: 'Silva Hound HAZBIN HOTEL - Addict', url: 'https://drive.google.com/uc?export=download&id=1b0rkk0RQa2UKdrlCRX3Y6Yn0ilJIliSr' },
            { name: 'PLAY WITH ME (Sonic.EXE)', url: 'https://drive.google.com/uc?export=download&id=1b1Kj5Cfdj9ncM3MD944SG2VbTgapi5la' },
            { name: 'Dark Auras (slowed reverb)', url: 'https://drive.google.com/uc?export=download&id=1b4PMV5tBBVZ4jRJfJM04gh2FhotPDIx9' },
            { name: 'TLT FNAF this comes from inside', url: 'https://drive.google.com/uc?export=download&id=1bAj3BvM5dBl5YgY90akVHfYwtUAPpWbN' },
            { name: 'CG5 Sleep Well', url: 'https://drive.google.com/uc?export=download&id=1bEdEU5wv70Mn3Vp0Yhz9CLuFa15bhuDr' },
            { name: 'Wide Awake ', url: 'https://drive.google.com/uc?export=download&id=1bEx7y2vlAESN8_mVVLU-n9icvUJt2A9V' },
            { name: 'I Can\'t fix you apAngryPig', url: 'https://drive.google.com/uc?export=download&id=1bHiTpsVFeI4MaZrn3V2IQs-no-0wK-wN' },
            { name: 'CG5 Stuck Inside Green Skeleton Remix', url: 'https://drive.google.com/uc?export=download&id=1bJ0GQlMveFaF42jr4n5enxWEIBq3tsXO' },
            { name: 'CG5 Skibidi Toilet', url: 'https://drive.google.com/uc?export=download&id=1bKbltVDTRW3DiksAd7hc22bN9mUl69Ws' },
            { name: 'Undertale MEGALOVANIA', url: 'https://drive.google.com/uc?export=download&id=1bQwg81qwWGiqf3k0XyDLCwIchVtnUVSe' },
            { name: 'ULTRA NECROZMA METAL COVER', url: 'https://drive.google.com/uc?export=download&id=1bSj9SebtRW_e2hW6kPSBqA_4_JYep8dA' },
            { name: 'Triple Trouble METAL COVER', url: 'https://drive.google.com/uc?export=download&id=1bTftX_1nGemNXKwHBQwdokUiHscj3Wui' },
            { name: 'Undefeatable (Sonic Frontiers) METAL COVER', url: 'https://drive.google.com/uc?export=download&id=1bVAdaZs5jFKASYvP8lgLAm5vkaLHONcz' },
            { name: 'DaGames Build Our Machine Metal Cover', url: 'https://drive.google.com/uc?export=download&id=1bVBdjMlWYIm6HQFfH0u29jXmlAOe5-D9' },
            { name: 'Discharge Metal Cover', url: 'https://drive.google.com/uc?export=download&id=1bYthKz-OKsYO5WWNTs-X34IfeGR8xERl' },
            { name: 'DHeusta Dark Deception TipToe', url: 'https://drive.google.com/uc?export=download&id=1b_z1DyiniLFxoeddgZ6AifYY6UKXcFmz' },
            { name: 'DHeusta FNAF Into the pit', url: 'https://drive.google.com/uc?export=download&id=1bbLBU06psNC7_kF3ckYZUqYrI3aVg3GR' },
            { name: 'Into the pit remix cover', url: 'https://drive.google.com/uc?export=download&id=1bgQMKshtZ1MPbn0gFoNIajOKXT5H1DsJ' },
            { name: 'TLT It\'s been so long', url: 'https://drive.google.com/uc?export=download&id=1biBgd_6Gg3_f2v3k-kaIeV5OxWPoYl7S' },
            { name: 'TLT FNAF Original Song', url: 'https://drive.google.com/uc?export=download&id=1bq4f9Zl9nKpEwe5ew2IxK0SLFV81zVNB' },
            { name: 'CG5 Phantom Dancing', url: 'https://drive.google.com/uc?export=download&id=1btLUUS_9qf-N-44JgYu3Jg94Z_m0Mepu' },
            { name: 'CG5 Lyin 2 Me', url: 'https://drive.google.com/uc?export=download&id=1bzJJZpfBFWWMs1Z1xc_quo2Q69-0XhHt' },
            { name: 'CG5 FNAF 4 remix ft. TLT', url: 'https://drive.google.com/uc?export=download&id=1c-bQdphYrR1Lz2kVLQrKpONAy9Mx7qP3' },
            { name: 'CG5 good to be alive', url: 'https://drive.google.com/uc?export=download&id=1c0bnZ7oeCjWmbj64IuQ1-CbTXP28YJcV' },
            { name: 'CG5 SHow Yourself', url: 'https://drive.google.com/uc?export=download&id=1c1C3ae25I4Jzt1Wir5axsur_AtJk4Bdi' },
            { name: 'CG5 Every Door', url: 'https://drive.google.com/uc?export=download&id=1c3uH7RPqIxYHW3hNtIMcg1echMcAxZXh' },
            { name: 'CG5 Poison Blooms', url: 'https://drive.google.com/uc?export=download&id=1cCXgU6PuRPYQgeKVSbwQ8K6J6b1xVxdc' },
            { name: 'CG5 Toon Catasrophes', url: 'https://drive.google.com/uc?export=download&id=1cFNZmqVtBenDnREf-8bRPDIR5ASOW5RU' },
            { name: 'CG5 He\'s the cartoon cat', url: 'https://drive.google.com/uc?export=download&id=1cF_Pu3I9q9gZRNWqUiIen00xXqGXK_Aj' },
            { name: 'CG5 Let me through', url: 'https://drive.google.com/uc?export=download&id=1cHf5sVf2lT2QdoIeNobJYTViFDuN111h' },
            { name: 'CG5 Mommy\'s here', url: 'https://drive.google.com/uc?export=download&id=1cL6W_NuJ9weuS_m1znfIoPvM4vA9IJmW' },
            { name: 'CG5 Bred To Be Bad', url: 'https://drive.google.com/uc?export=download&id=1cP4P4I8ghD6rJHo-EatRTBDz8QPOg3ru' },
            { name: 'CG5 MINION', url: 'https://drive.google.com/uc?export=download&id=1cSGVb5lP0GupNuCSmyH9hkv0-qjvm30Z' },
            { name: 'CG5 Glamorous', url: 'https://drive.google.com/uc?export=download&id=1cTbzblrw9SlgAvz6EC32sgzBbKqXaG6U' },
            { name: 'CG5 Pied Piper', url: 'https://drive.google.com/uc?export=download&id=1cXvwko-gu32Q1CYTgnYfZ6r4GZ8n9-QD' },
            { name: 'CG5 IDONTUNDERSTAND', url: 'https://drive.google.com/uc?export=download&id=1ccQJhbD9THua0Bilb6aFSeoJNcmmeATL' },
            { name: 'RG Memory', url: 'https://drive.google.com/uc?export=download&id=1coyyN9Aiif48wDN6KCnU3ecLFAMpHAIQ' },
            { name: 'RG TIME Stranger Things', url: 'https://drive.google.com/uc?export=download&id=1cp5Broybctm9EBFkPUgMfQ6PUd1vVGvv' },
            { name: 'RG PURPLE', url: 'https://drive.google.com/uc?export=download&id=1czQ3mgculd1E68ZH_sNa5fIKNEIeojYa' },
            { name: 'RG ORANGE', url: 'https://drive.google.com/uc?export=download&id=1d-HLXtZLLeJPT88_qDUKdk7yXZRIB51X' },
            { name: 'SOLO "Let me solo her"', url: 'https://drive.google.com/uc?export=download&id=1d-fOdQuSIY7kaqERHkREgkqbltdz0Ggi' },
            { name: 'JT Music Monsters FNAF', url: 'https://drive.google.com/uc?export=download&id=1d38GNGDOIoJo_Q9ynZnNUEMd9y1RCAGd' },
            { name: 'JT Music AMANDA THE ADVENTURER', url: 'https://drive.google.com/uc?export=download&id=1d4EWchBidy8ro2yKVlNEfyY5vW7fBM32' },
            { name: 'Shwab Straight Up', url: 'https://drive.google.com/uc?export=download&id=1d6FNz0Z1DsRkf_BCclsBuW1DPe_iTIHt' },
            { name: 'Shwab Untouchable', url: 'https://drive.google.com/uc?export=download&id=1d8HMFWXn7i2JVcJkFjOs-Q_TeDqxUrSj' },
            { name: 'Shwab I Want Violence', url: 'https://drive.google.com/uc?export=download&id=1dB5F5itvINrbSevUvCo_ZiH_pNi4YPZr' },
            { name: 'Dizzy Sacrifices', url: 'https://drive.google.com/uc?export=download&id=1dE5KqUjHKyGJGMP5ZX9CAhzGJgFHhKNi' },
            { name: 'Dizzy Slide', url: 'https://drive.google.com/uc?export=download&id=1dELTWli6fbbIfw_ZIzl4po_KCJJoaU6N' },
            { name: 'Dizzy Sharingan', url: 'https://drive.google.com/uc?export=download&id=1dI30ujDQxLhoEE7iivFdCabUuEmA-wyC' },
            { name: 'Dizzy In Paradis', url: 'https://drive.google.com/uc?export=download&id=1dR3QZu504DOPasOzxOSWKlsela3Y-bmW' },
            { name: 'Dizzy No Way Home', url: 'https://drive.google.com/uc?export=download&id=1dXC8YdV-9i-kh_ksu9EYEZBapfFiL4mX' },
            { name: 'Dizzy I Don\'t wanna be alone', url: 'https://drive.google.com/uc?export=download&id=1dZ0u61QOku71NeheUyn1Bjniz9HLS-JL' },
            { name: 'Dizzy Gojo_Flow', url: 'https://drive.google.com/uc?export=download&id=1dZRWWnK6-p69HSypAqpUfY3XPgb5vLED' },
            { name: 'Dizzy Invincible', url: 'https://drive.google.com/uc?export=download&id=1dfIna9mziktBvVT6vn013x5rjawG-AaA' },
            { name: 'Dizzy Fire In My Heart', url: 'https://drive.google.com/uc?export=download&id=1dfUGfl380Z5oqY5-ruJIatpC_3Je2e9h' },
            { name: 'Dizzy Cold Flame', url: 'https://drive.google.com/uc?export=download&id=1diXpbQla5M1jtU6alIGBkCFZzcIVTz__' },
            { name: 'Dizzy Off My Mind', url: 'https://drive.google.com/uc?export=download&id=1dpRJlXZL4AhgqGYJrr5fa8ni8gc8p914' },
            { name: 'Dizzy Royalty', url: 'https://drive.google.com/uc?export=download&id=1dsrnc_taRx6ElVOBG_q6bOrRzq-4Tlh0' },
            { name: 'Dizzy Crazy In Love', url: 'https://drive.google.com/uc?export=download&id=1dv1xRdVces-jUd6veWvSTjhZNhG0v65R' },
            { name: 'Dizzy KAKAROT', url: 'https://drive.google.com/uc?export=download&id=1dv8GNFKUCiX3wvAL3A5m0jCnnG7Ro3_-' },
            { name: 'Dizzy Redemption', url: 'https://drive.google.com/uc?export=download&id=1e1NFhigDWWgNmanT8WbSQw-_2Gq1UYlg' },
            { name: 'Dizzy Itachi', url: 'https://drive.google.com/uc?export=download&id=1e779Z3uNMxkxFHi_I22kj7soqbhpOVmW' },
            { name: 'Dizzy ULTRA INSTINCT FREESTYLE', ur: 'https://drive.google.com/uc?export=download&id=1e7xNPDO744vfyaiq3NgtIc28NG_G-FuN' },
            { name: 'Dizzy Decay', url: 'https://drive.google.com/uc?export=download&id=1e843is3kI8t4_XZUezXmLWJ1Yai2be-m' },
            { name: 'Dizzy Feeling Like', url: 'https://drive.google.com/uc?export=download&id=1e9E4Tgtg9IzkG0TkWs1WB_vhwV8bcdmX' },
            { name: 'Dizzy DEATH MATCH', url: 'https://drive.google.com/uc?export=download&id=1eISHh4w9tH50PnFwraqBkgmMEdUQvR-_' },
            { name: 'Dizzy MARINES CYPHER', url: 'https://drive.google.com/uc?export=download&id=1eLoGVY6jLnjAwWgKp2c-33GsguaNUrMR' },
            { name: 'Dizzy Shooting Star', url: 'https://drive.google.com/uc?export=download&id=1eM4__j6ZLT6xNqqCZmllRtOGme2cXT_F' },
            { name: 'Dizzy Eclipse', url: 'https://drive.google.com/uc?export=download&id=1eMUjWlPMcw-YECp4am-_zmplJ1vArJ7K' },
            { name: 'Dizzy Arch-Villain', url: 'https://drive.google.com/uc?export=download&id=1eO2uq3mRJsJLlUiw6WHQCc6LEGD4N3Ls' },
            { name: 'Dizzy Not Mine', url: 'https://drive.google.com/uc?export=download&id=1ePe2NeWKL0Qljt5b9uATqm1HPDTtSdwr' },
            { name: 'Dizzy Liberation', url: 'https://drive.google.com/uc?export=download&id=1eQzdFLgOWMso-7N_Pm2o0hoJe2CMegqx' },
            { name: 'Dizzy Reckless', url: 'https://drive.google.com/uc?export=download&id=1eTSibM7cd9mPMKiqQYV9zCYo3zF_quAP' },
            { name: 'Dizzy RATIO', url: 'https://drive.google.com/uc?export=download&id=1eh8IncOq3HoO5OPQVTT5zYEksCDXlWdz' },
            { name: 'Dizzy Strongest', url: 'https://drive.google.com/uc?export=download&id=1ehew4C2VCU3wUOVNI9iQYCrdvR8xBEGa' },
            { name: 'CAM STEADY POKEMON VILLAIN CYPHER', url: 'https://drive.google.com/uc?export=download&id=1ei3td2DGLNYpqSeO3okfcuNL7MKmzuAA' },
            { name: 'CAM STEADY POKEMON TRAINER CYPHER', url: 'https://drive.google.com/uc?export=download&id=1ejhToulOvkSfk6nR9OGMMTLmA6UKX4Zj' },
            { name: 'DPS King Me', url: 'https://drive.google.com/uc?export=download&id=1et30IuEYpNPnkqXpTLN8B9q34GDdW1eh' },
            { name: 'DPS MALEVOLENT', url: 'https://drive.google.com/uc?export=download&id=1eyaj_MS9ICvcsvrtL5LLNcM9fyQEYOZ0' },
            { name: 'DPS Fallen', url: 'https://drive.google.com/uc?export=download&id=1f51mBd2ApnQPHvgF_WJMw7OA6rQgRjCK' },
            { name: 'DPS Sins Of The Father (invincible)', url: 'https://drive.google.com/uc?export=download&id=1fE1NLQ-fagqNECLyq873QpKD7OWAgXvF' },
            { name: 'DPS Invincible (Omni Man)', url: 'https://drive.google.com/uc?export=download&id=1fMtq9bg_nfR8gTlIIXCtrgVTJE805N04' },
            { name: 'DPS Final Laugh', url: 'https://drive.google.com/uc?export=download&id=1fPRy5sMOKJlUoXFftKRXwu3rW2JgF4Pe' },
            { name: 'DPS Scary Hours (Akaza Rap)', url: 'https://drive.google.com/uc?export=download&id=1fP_tqWepLdsgsdp17e_jcZUj0jVrNISR' },
            { name: 'DPS REBEL (Bakugo)', url: 'https://drive.google.com/uc?export=download&id=1fPlYkxgcA-jyS5smZqS1VCAgtdfKO3Ea' },
            { name: 'DPS Hold Up', url: 'https://drive.google.com/uc?export=download&id=1fS8LblnHxQrA2gNVdgjxBkYMQ2yZNqWo' },
            { name: 'DPS L Rap', url: 'https://drive.google.com/uc?export=download&id=1fSsU4D6FbSgCCt8jvPSZY1Nimbls6s8r' },
            { name: 'DPS Titans', url: 'https://drive.google.com/uc?export=download&id=1fUvootRArS1PL1rjEqIj753wITat-Cvs' },
            { name: 'DPS Omni King (Zeno)', url: 'https://drive.google.com/uc?export=download&id=1fVIp12OB39pXvDqyaYYBQvkdBv0JZYMw' },
            { name: 'DPS Split (Moon Knight)', url: 'https://drive.google.com/uc?export=download&id=1fWCTkgrIKBVZ-pL4Bh182JlhGrH94Ynr' },
            { name: 'DPS Grave', url: 'https://drive.google.com/uc?export=download&id=1fWQ_0yMEir4EWytcxu8w10ohM7Wxb6tR' },
            { name: 'DPS The Rumbling', url: 'https://drive.google.com/uc?export=download&id=1fYhGCWYGtPaULCtYxbP5NoFLguS7Yk_Z' },
            { name: 'DPS Black Air Force Energy', url: 'https://drive.google.com/uc?export=download&id=1fdhe2o5Rkp5ociRBfaV6Nx9R1xD_4-Ox' },
            { name: 'DPS Over The Top', url: 'https://drive.google.com/uc?export=download&id=1fjknrupmyfdMJyZ3vP50tlUtcPQOvABR' },
            { name: 'DPS Triple Threat', url: 'https://drive.google.com/uc?export=download&id=1foe5L7d7a-YJUaaQe7I80IWBdNdVqPdQ' },
            { name: 'DPS Squid Games (Gganbu)', url: 'https://drive.google.com/uc?export=download&id=1fvdgFpDOCy8zextdsAB_zX7euPjjLAwl' },
            { name: 'DPS Forgive Me', url: 'https://drive.google.com/uc?export=download&id=1fx4dNcu08dfQ9qy08EfWphBhrDftGSjY' },
            { name: 'DPS Blood Curdle', url: 'https://drive.google.com/uc?export=download&id=1g9LrTw4RWMbqcOS0VIxObViPu66_Kqtr' },
            { name: 'DPS Cowboy Bebop (Space cowboy)', url: 'https://drive.google.com/uc?export=download&id=1gCqWKIp75VMozuW1w4CvU1ujIG3ruM0K' },
            { name: 'DPS I Am Him', url: 'https://drive.google.com/uc?export=download&id=1gIGtspADKN6RNeoOAKcYpZpO_56wCzhN' },
            { name: 'DPS tHe GoAt', url: 'https://drive.google.com/uc?export=download&id=1gJ7q8BT9_mf6zG5GQAeTLBkvCxkq78GD' },
            { name: 'DPS Cyber Psycho', url: 'https://drive.google.com/uc?export=download&id=1gKT72r52KKxbRMRt-doIp5jUsHhFPrnQ' },
            { name: 'DPS Menace', url: 'https://drive.google.com/uc?export=download&id=1gKn0NpBxfl1phK_I17QO_wcsbwW8rf3I' },
            { name: 'DPS Legend Remix', url: 'https://drive.google.com/uc?export=download&id=1gLvJAFPAv87JFWwxHEgNnktl_jvPGILb' },
            { name: 'DPS SaVaGe', url: 'https://drive.google.com/uc?export=download&id=1gNjUI5eFZzeb9oegWJU-vceRasEfAC27' },
            { name: 'DPS Ragnarok (Record of Ragnorok', url: 'https://drive.google.com/uc?export=download&id=1gO8miayxpAA7jprii1htx1oyu_oKT03L' },
            { name: 'DPS DEATH', url: 'https://drive.google.com/uc?export=download&id=1gUyxLIAHzNT4DEZD6N0f_4FzhysJbOWV' },
            { name: 'DPS London Bridge', url: 'https://drive.google.com/uc?export=download&id=1gV-trhW9BUIAt5JRpQAvUFvmNwijY_2F' },
            { name: 'DPS I\'m Better (Homelander)', url: 'https://drive.google.com/uc?export=download&id=1gXWm_Sttk8EBKiENhpK4PkQyYK-RBK5B' },
            { name: 'Let Him Cook (Sanji)', url: 'https://drive.google.com/uc?export=download&id=1gYkpxXkJsWa-pt4p5AcUF4RC6YFWyoI6' },
            { name: 'DPS All The Smoke', url: 'https://drive.google.com/uc?export=download&id=1gfHVseQvSPxTJB3dujLwH6IuqR1ApseT' },
            { name: 'DPS Your End', url: 'https://drive.google.com/uc?export=download&id=1gfwUEP9IC7k9pNvzzq4KvyunOubyfRY9' },
            { name: 'DPS Liberation', url: 'https://drive.google.com/uc?export=download&id=1gj1hlhfBJsAl2UWmdIjUECPt2awsStSh' },
            { name: 'DPS GOATED (Buddha)', url: 'https://drive.google.com/uc?export=download&id=1gjTCE7mF6bg2Q5h-bJskLdBgWENIGt4o' },
            { name: 'DPS Michael Myers (Halloween Horror Dis', url: 'https://drive.google.com/uc?export=download&id=1gmaeNBPNWe0rLDgX9jHbhU3RKGZARM-9' },
            { name: 'DPS Hoodlum', url: 'https://drive.google.com/uc?export=download&id=1gnWOPatGGxBBoBzggLlt_C8AOvuwD5tP' },
            { name: 'DPS Eye_For_An_Eye', url: 'https://drive.google.com/uc?export=download&id=1gtl-yUXLvse4fTKrfXHPkGPIB83nKVVW' },
            { name: 'DPS Transfiguration', url: 'https://drive.google.com/uc?export=download&id=1h1vENw1NgardyKLXwNpgT4n7W8RdIobX' },
            { name: 'CAM STEADY DROP DEAD!', url: 'https://drive.google.com/uc?export=download&id=1h4EtUjVayaeAREAP09qAXARjCdhXz0At' },
            { name: 'CAM STEADY MEWTWO!', url: 'https://drive.google.com/uc?export=download&id=1hKw9oKuLoini2GK5r1V96TvSrs-wC5L4' },
            { name: 'CAM STEADY YOU CANNOT BREAK ME!', url: 'https://drive.google.com/uc?export=download&id=1hNm4trSyq5XEc217U7RWHPgy9I49XDWp' },
            { name: 'CAM STEADY GOD COMPLEX!', url: 'https://drive.google.com/uc?export=download&id=1hXzrQc2ObDsi-ldsUBcc9DJjHNuUq1MI' }
        ];

        const audioElements = [];
        let currentlyPlayingIndex = -1; // Initialize to no song playing
        songs.forEach(song => {
            const audio = new Audio(song.url);
            audio.volume = 0.5; // Set default volume to 50%
            audioElements.push(audio);
        });

        // Create a div for controls
        const controlsDiv = document.createElement('div');
        controlsDiv.style.textAlign = 'center'; // Center-align controls
        controlsDiv.style.marginTop = '20px'; // Add margin from the top for controls

        // Create buttons for each song
        songs.forEach((song, index) => {
            const playButton = document.createElement('button');
            playButton.textContent = song.name;
            playButton.addEventListener('click', () => playSong(index));
            playButton.style.backgroundColor = '#222'; // Dark grey background
            playButton.style.color = 'white'; // White text
            playButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
            playButton.style.border = 'none';
            playButton.style.padding = '10px';
            playButton.style.margin = '5px';
            playButton.style.width = '90%'; // Make buttons fill width of the window
            playButton.style.display = 'block';
            playButton.style.marginLeft = 'auto';
            playButton.style.marginRight = 'auto';
            controlsDiv.appendChild(playButton);

            const separator = document.createElement('div');
            separator.style.height = '2px'; // Height of separator
            separator.style.backgroundColor = 'white'; // White color for separator
            separator.style.margin = '5px 0'; // Margin top and bottom to separate buttons
            controlsDiv.appendChild(separator);
        });

        // Create pause, stop, and volume controls
        const pauseButton = document.createElement('button');
        pauseButton.textContent = 'Pause';
        pauseButton.addEventListener('click', togglePause);
        pauseButton.style.backgroundColor = '#222'; // Dark grey background
        pauseButton.style.color = 'white'; // White text
        pauseButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        pauseButton.style.border = 'none';
        pauseButton.style.padding = '10px';
        pauseButton.style.margin = '5px';
        pauseButton.style.width = '90%'; // Make buttons fill width of the window
        pauseButton.style.display = 'block';
        pauseButton.style.marginLeft = 'auto';
        pauseButton.style.marginRight = 'auto';
        controlsDiv.appendChild(pauseButton);

        const stopButton = document.createElement('button');
        stopButton.textContent = 'Stop';
        stopButton.addEventListener('click', stopAllSongs);
        stopButton.style.backgroundColor = '#222'; // Dark grey background
        stopButton.style.color = 'white'; // White text
        stopButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        stopButton.style.border = 'none';
        stopButton.style.padding = '10px';
        stopButton.style.margin = '5px';
        stopButton.style.width = '90%'; // Make buttons fill width of the window
        stopButton.style.display = 'block';
        stopButton.style.marginLeft = 'auto';
        stopButton.style.marginRight = 'auto';
        controlsDiv.appendChild(stopButton);

        const volumeSlider = document.createElement('input');
        volumeSlider.type = 'range';
        volumeSlider.min = 0;
        volumeSlider.max = 2; // Allow volume up to 200%
        volumeSlider.step = 0.1;
        volumeSlider.value = 0.5;
        volumeSlider.addEventListener('input', adjustVolume);
        volumeSlider.style.width = '90%'; // Make slider fill width of the window
        volumeSlider.style.margin = '5px';
        volumeSlider.style.display = 'block';
        volumeSlider.style.marginLeft = 'auto';
        volumeSlider.style.marginRight = 'auto';
        controlsDiv.appendChild(volumeSlider);

        // Create Loop Song button
        const loopButton = document.createElement('button');
        loopButton.textContent = 'Loop Song';
        loopButton.addEventListener('click', loopCurrentSong);
        loopButton.style.backgroundColor = '#222'; // Dark grey background
        loopButton.style.color = 'white'; // White text
        loopButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        loopButton.style.border = 'none';
        loopButton.style.padding = '10px';
        loopButton.style.margin = '5px';
        loopButton.style.width = '90%'; // Make buttons fill width of the window
        loopButton.style.display = 'block';
        loopButton.style.marginLeft = 'auto';
        loopButton.style.marginRight = 'auto';
        controlsDiv.appendChild(loopButton);

        // Create a settings button
        const settingsButton = document.createElement('button');
        settingsButton.textContent = 'Settings';
        settingsButton.addEventListener('click', openSettingsWindow);
        settingsButton.style.backgroundColor = '#222'; // Dark grey background
        settingsButton.style.color = 'white'; // White text
        settingsButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        settingsButton.style.border = 'none';
        settingsButton.style.padding = '10px';
        settingsButton.style.margin = '20px auto 0'; // Center the button horizontally and add margin from the top
        settingsButton.style.width = '90%'; // Make buttons fill width of the window
        settingsButton.style.display = 'block';
        settingsButton.style.marginLeft = 'auto';
        settingsButton.style.marginRight = 'auto';
        controlsDiv.appendChild(settingsButton);

        // Create a Credits button
        const creditsButton = document.createElement('button');
        creditsButton.textContent = 'Credits';
        creditsButton.addEventListener('click', openCreditsWindow);
        creditsButton.style.backgroundColor = '#222'; // Dark grey background
        creditsButton.style.color = 'white'; // White text
        creditsButton.style.textShadow = '0 0 10px white, 0 0 20px white, 0 0 30px white, 0 0 40px white'; // Glowing effect
        creditsButton.style.border = 'none';
        creditsButton.style.padding = '10px';
        creditsButton.style.margin = '20px auto 0'; // Center the button horizontally and add margin from the top
        creditsButton.style.width = '90%'; // Make buttons fill width of the window
        creditsButton.style.display = 'block';
        creditsButton.style.marginLeft = 'auto';
        creditsButton.style.marginRight = 'auto';
        controlsDiv.appendChild(creditsButton);

        musicPlayerWindow.document.body.appendChild(controlsDiv);

        // Function to play a song
        function playSong(index) {
            stopAllSongs(); // Stop all other songs before playing
            audioElements[index].play();
            currentlyPlayingIndex = index; // Set currently playing index
        }

        // Function to toggle pause/play for the currently playing song
        function togglePause() {
            if (currentlyPlayingIndex === -1) return; // No song playing
            const isPaused = audioElements[currentlyPlayingIndex].paused;
            if (isPaused) {
                audioElements[currentlyPlayingIndex].play();
            } else {
                audioElements[currentlyPlayingIndex].pause();
            }
        }

        // Function to stop all songs
        function stopAllSongs() {
            audioElements.forEach(audio => {
                audio.pause();
                audio.currentTime = 0;
            });
            currentlyPlayingIndex = -1; // Reset currently playing index
        }

        // Function to adjust volume
        function adjustVolume() {
            const volume = parseFloat(volumeSlider.value);
            audioElements.forEach(audio => audio.volume = volume);
        }

        // Function to loop the currently playing song
        function loopCurrentSong() {
            if (currentlyPlayingIndex !== -1) {
                audioElements[currentlyPlayingIndex].loop = true;
            }
        }

function openSettingsWindow() {
    const settingsWindow = window.open('', '_blank', 'width=400,height=300,top=100,left=100');
    settingsWindow.document.title = 'Settings';
    settingsWindow.document.body.style.backgroundColor = 'black'; // Set background color to black

    // Create a div for the title
    const titleDiv = document.createElement('div');
    titleDiv.textContent = 'Change Color';
    titleDiv.style.color = '#7b6d8d'; // UltraViolet color
    titleDiv.style.textShadow = '0 0 10px #ff00ff, 0 0 20px #ff00ff, 0 0 30px #ff00ff, 0 0 40px #ff00ff'; // Neon glow effect
    titleDiv.style.fontSize = '24px';
    titleDiv.style.marginTop = '20px'; // Add margin from the top
    titleDiv.style.textAlign = 'center'; // Center the text
    settingsWindow.document.body.appendChild(titleDiv);

    const controlsDiv = document.createElement('div');
    settingsWindow.document.body.appendChild(controlsDiv);

    const colorButtons = [
        { value: 'white', label: 'White' },
        { value: 'red', label: 'Red' },
        { value: 'cyan', label: 'Cyan' },
        { value: 'purple', label: 'Purple' },
        { value: 'magenta', label: 'Magenta' },
        { value: 'lime', label: 'Lime' },
        { value: 'yellow', label: 'Yellow' },
        { value: 'gold', label: 'Gold' },
        { value: 'blue', label: 'Blue' },
        { value: 'teal', label: 'Teal' },
        { value: 'green', label: 'Green' },
        { value: 'orange', label: 'Orange' },
        { value: 'silver', label: 'Silver' },
        { value: 'coral', label: 'Coral' },
        { value: '#E0115F', label: 'Ruby' },
        { value: '#800000', label: 'Maroon' },
        { value: '#FFC0CB', label: 'Pink' },
        { value: '#FF007F', label: 'Rose' },
        { value: '#ACE1AF', label: 'Celadon' },
        { value: '#deb887', label: 'Burlywood' },
        { value: '#fdee00', label: 'Aureolin' },
        { value: '#6082B6', label: 'Glaucous' },
        { value: '#2CFA1F', label: 'RadioActive' }, // UltraViolet and lime green
        { value: '#53322f', label: 'Gred' },
        { value: '#06ff69', label: 'Celery'},
        { value: '#0affa0', label: 'WinterGreen'},
        { value: '#7d12ff', label: 'BlackLight'},
        { value: '#26136f', label: 'Dark Blue'},
        { value: '#ff5e00', label: 'Red-Orange'}
    ];

    // Function to handle color changes
    function handleColorChange(color) {
        changeColors(color);
    }

    // Event listener for color buttons
    colorButtons.forEach(option => {
        const button = document.createElement('button');
        button.textContent = option.label;
        button.style.display = 'block';
        button.style.margin = '10px auto';
        button.style.width = '150px';
        button.style.backgroundColor = option.value;
        button.style.color = 'black'; // For visibility
        button.addEventListener('click', () => handleColorChange(option.value)); // Modified line
        controlsDiv.appendChild(button);
    });
}
// Function to change colors
function changeColors(color) {
    // Change title color and glow
    titleDiv.style.color = color;
    titleDiv.style.textShadow = `0 0 10px ${color}, 0 0 20px ${color}, 0 0 30px ${color}, 0 0 40px ${color}`;

    // Change button text color and glow
    controlsDiv.childNodes.forEach(button => {
        button.style.color = color;
        button.style.textShadow = `0 0 10px ${color}, 0 0 20px ${color}, 0 0 30px ${color}, 0 0 40px ${color}`;
    });

    // Change separator line color
    controlsDiv.querySelectorAll('div').forEach(line => {
        line.style.backgroundColor = color;
    });

    // Change settings window color
    settingsWindow.document.body.style.color = color;
}
        // Function to open the credits window
        function openCreditsWindow() {
            const creditsWindow = window.open('', '_blank', 'width=400,height=300,top=100,left=100');
            creditsWindow.document.title = 'Credits';
            creditsWindow.document.body.style.backgroundColor = 'black'; // Set background color to black

            const creditsText = document.createElement('div');
            creditsText.textContent = '♥♥♥ I want to be amazing enough for Angelica P. ♥♥♥';
            creditsText.style.color = 'silver'; // Silver text
            creditsText.style.textShadow = '0 0 10px silver, 0 0 20px silver, 0 0 30px silver, 0 0 40px silver'; // Glowing effect
            creditsText.style.fontSize = '24px'; // Larger font size
            creditsText.style.fontWeight = 'bold'; // Bold font
            creditsText.style.textAlign = 'center'; // Center-align text
            creditsText.style.marginTop = '20px'; // Add margin from the top
            creditsWindow.document.body.appendChild(creditsText);
        }
    }
})();