File size: 2,679 Bytes
a780f3d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Reproductor de Música</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
        }
        #player {
            width: 100%;
            max-width: 600px;
            height: 350px;
            margin: 20px auto;
        }
    </style>
</head>
<body>

    <h1>Reproductor de Música desde YouTube</h1>
    <input type="text" id="youtube-url" placeholder="Ingresa la URL de YouTube" style="width: 80%; padding: 10px;">
    <button onclick="loadVideo()">Cargar Video</button>

    <div id="player"></div>

    <script>
        // Cargar el iframe de YouTube de manera dinámica
        function onYouTubeIframeAPIReady() {
            window.player = new YT.Player('player', {
                height: '350',
                width: '600',
                videoId: '',  // Inicialmente vacío
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                }
            });
        }

        // Cuando el reproductor está listo
        function onPlayerReady(event) {
            console.log("Reproductor listo.");
        }

        // Detectar el estado del video (por ejemplo, si terminó)
        function onPlayerStateChange(event) {
            if (event.data === YT.PlayerState.ENDED) {
                console.log("El video terminó.");
            }
        }

        // Cargar un nuevo video usando la URL de YouTube
        function loadVideo() {
            var url = document.getElementById('youtube-url').value;
            var videoId = extractVideoId(url);
            if (videoId) {
                player.loadVideoById(videoId);
            } else {
                alert('URL de YouTube no válida');
            }
        }

        // Extraer el video ID de una URL de YouTube
        function extractVideoId(url) {
            var videoId = '';
            var regex = /(?:https?:\/\/(?:www\.)?youtube\.com\/(?:[^\/]+\/.*\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
            var match = url.match(regex);
            if (match) {
                videoId = match[1];
            }
            return videoId;
        }

        // Cargar la API de YouTube
        var tag = document.createElement('script');
        tag.src = "https://www.youtube.com/iframe_api";
        var firstScriptTag = document.getElementsByTagName('script')[0];
        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    </script>

</body>
</html>