<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5871327865452383864</atom:id><lastBuildDate>Sun, 08 Mar 2026 12:36:10 +0000</lastBuildDate><title>influencia urbana</title><description></description><link>https://www.influenciaurbana.com/</link><managingEditor>noreply@blogger.com (epifanio sambrota)</managingEditor><generator>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-2291516227940799643</guid><pubDate>Tue, 06 Jan 2026 23:49:02 +0000</pubDate><atom:updated>2026-01-06T16:06:31.290-08:00</atom:updated><title></title><description>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;title&gt;Videos Públicos&lt;/title&gt;
&lt;style&gt;
  body {
    font-family: Arial, sans-serif;
    background: #121212;
    color: #f0f0f0;
    padding: 20px;
  }
  h1 {
    color: #00ff00;
    text-shadow: 0 0 5px #00ff00;
  }
  .video-card {
    background: #1e1e1e;
    padding: 15px;
    margin-bottom: 12px;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 255, 0, 0.3);
    transition: transform 0.2s;
  }
  .video-card:hover {
    transform: scale(1.02);
  }
  a {
    color: #00ff00;
    text-decoration: none;
  }
  a:hover {
    text-decoration: underline;
  }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;Lista de Videos&lt;/h1&gt;
&lt;div id=&quot;videos&quot;&gt;Cargando...&lt;/div&gt;

&lt;script&gt;
// URL de tu JSON en Firebase Hosting
const jsonUrl = &quot;https://urbana-d2d57.web.app/publicVideos.json&quot;;

fetch(jsonUrl)
  .then(response =&gt; {
    if (!response.ok) throw new Error(&quot;No se pudo cargar el JSON: &quot; + response.status);
    return response.json();
  })
  .then(videos =&gt; {
    const container = document.getElementById(&quot;videos&quot;);
    container.innerHTML = &quot;&quot;; // limpiar &quot;Cargando...&quot;

    videos.forEach(video =&gt; {
      const div = document.createElement(&quot;div&quot;);
      div.className = &quot;video-card&quot;;
      div.innerHTML = `
        &lt;strong&gt;${video.titulo || video.name || &quot;Sin título&quot;}&lt;/strong&gt;&lt;br&gt;
        &lt;a href=&quot;${video.url || &quot;#&quot;}&quot; target=&quot;_blank&quot;&gt;Ver video&lt;/a&gt;
      `;
      container.appendChild(div);
    });
  })
  .catch(err =&gt; {
    console.error(err);
    document.getElementById(&quot;videos&quot;).innerText = &quot;No se pudieron cargar los videos.&quot;;
  });
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;
</description><link>https://www.influenciaurbana.com/2026/01/mostrar-json-publico-lista-de-videos.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-1287579554688123279</guid><pubDate>Mon, 05 Jan 2026 22:26:11 +0000</pubDate><atom:updated>2026-01-05T14:28:55.028-08:00</atom:updated><title></title><description>&lt;style&gt;
#tv-container {
  max-width: 900px;
  margin: auto;
  font-family: Arial, sans-serif;
}

#player {
  width: 100%;
  background: #000;
  margin-bottom: 10px;
}

#channels button {
  width: 100%;
  padding: 10px;
  border: none;
  border-bottom: 1px solid #ddd;
  background: #f7f7f7;
  text-align: left;
  cursor: pointer;
}

#channels button:hover {
  background: #eaeaea;
}
&lt;/style&gt;

&lt;div id=&quot;tv-container&quot;&gt;
  &lt;video id=&quot;player&quot; controls autoplay&gt;&lt;/video&gt;
  &lt;div id=&quot;channels&quot;&gt;Cargando canales...&lt;/div&gt;
&lt;/div&gt;

&lt;script src=&quot;https://cdn.jsdelivr.net/npm/hls.js@latest&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const COUNTRY = &quot;CO&quot;; // cambia el país aquí (CO, MX, AR, ES, etc)

Promise.all([
  fetch(&quot;https://iptv-org.github.io/api/channels.json&quot;).then(r =&gt; r.json()),
  fetch(&quot;https://iptv-org.github.io/api/streams.json&quot;).then(r =&gt; r.json())
]).then(([channels, streams]) =&gt; {

  const playable = channels
    .filter(c =&gt; c.country === COUNTRY)
    .map(c =&gt; {
      const stream = streams.find(s =&gt;
        s.channel === c.id &amp;&amp;
        s.url &amp;&amp;
        s.url.includes(&quot;.m3u8&quot;)
      );
      return stream ? { name: c.name, url: stream.url } : null;
    })
    .filter(Boolean)
    .slice(0, 30); // límite para prueba

  const list = document.getElementById(&quot;channels&quot;);

  if (!playable.length) {
    list.innerHTML = &quot;No hay canales disponibles.&quot;;
    return;
  }

  list.innerHTML = playable.map(c =&gt;
    `&lt;button onclick=&quot;play(&#39;${c.url}&#39;)&quot;&gt;${c.name}&lt;/button&gt;`
  ).join(&quot;&quot;);

  play(playable[0].url); // reproduce el primero
});

function play(url) {
  const video = document.getElementById(&quot;player&quot;);
  if (Hls.isSupported()) {
    if (window.hls) window.hls.destroy();
    window.hls = new Hls();
    window.hls.loadSource(url);
    window.hls.attachMedia(video);
  } else {
    video.src = url;
  }
}
&lt;/script&gt;
</description><link>https://www.influenciaurbana.com/2026/01/const-lines-txt.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4788089372503704106</guid><pubDate>Sat, 05 Jul 2025 01:36:00 +0000</pubDate><atom:updated>2025-07-04T18:36:20.925-07:00</atom:updated><title>Nirvana</title><description>

&lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglo1uWlE9vEe-bttZS2qhKoFFdi0qSxsZ51y9WgmHVu18kWfs_9kU8La37ACwOXzOaLFyYliTJn9koNaTG78XrMB-fmreiZmKuZCKrYs9fmaeRE-DahI6D7307NeYxw0MYGiCQKS-inGVBQwgCPs5s0Ucldgnay6HevmHcoTxQXbZ4AQ/s1600/nirvana%20logo.png&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 150%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 150%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Nirvana&lt;/h1&gt;
    &lt;/div&gt;





&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 400px;
            margin: auto;
            text-align: center;
        }

        audio {
            width: 100%;
        }

        .playlist {
            list-style-type: none;
            padding: 0;
        }

        .playlist li {
            cursor: pointer;
            margin: 5px 0;
            padding: 5px;
            background-color: #f0f0f0;
            border: 1px solid #ccc;
            border-radius: 5px;
            text-align: center;
        }

        .playlist li:hover {
            background-color: #d0d0d0;
        }

        .play-all-button, .play-random-button {
            margin-top: 10px;
            padding: 10px 15px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }

        .play-all-button:hover, .play-random-button:hover {
            background-color: #45a049;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2 style=&quot;color: #F1F1F1;&quot;&gt;Discografía - Top&lt;/h2&gt;

      &lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7kAQVqZZcrihAQ-CDPn-WI4iwlM6uqrhkbfdqzaxCKNA6U7Ug824SkGIMTL5dtwhLZFjffYICaV9jqDpVryWRxlkDi4eivrOZYdsUcWf8MNNPEa8jtMhHHT0s5R_4NASWg48WFve-Tjz3TAltnqNFNk4hylqoJ12aaHCFxCYd0PQwA/s1600/KZ95.gif&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 100%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 100%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;
        &lt;audio id=&quot;audioPlayer&quot; controls autoplay controlslist=&quot;nodownload&quot;&gt;
            &lt;source src=&quot;https://www.dropbox.com/scl/fi/vsskky8bkmt4vs1iz9nu5/Sean-Paul-Get-Busy.mp3?rlkey=8cd89exa6vknrrsnsh2x7floz&amp;st=bouko2zf&amp;dl=1&quot; type=&quot;audio/mpeg&quot;&gt;
            Tu navegador no soporta el elemento de audio.
        &lt;/audio&gt;
        &lt;ul class=&quot;playlist&quot;&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/hxobnz7psnnhuc9txabhg/Nirvana-About-A-Girl.mp3?rlkey=p2qwpqywblydhb3haeu7u0sts&amp;st=gbnd3t5j&amp;dl=1&#39;)&quot;&gt;Nirvana About A Girl&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/cfustpdt7drykj4jr5qoy/Nirvana-All-Apologies.mp3?rlkey=9kjcjitvhpi3nchrhyzumggii&amp;st=ujm8317h&amp;dl=1&#39;)&quot;&gt;Nirvana All Apologies&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/bziyrv96xgu8nw7pnv1l7/Nirvana-Come-As-You-Are.mp3?rlkey=0kw8jhnhl1oa6k70b4984r4zb&amp;st=m2ap7bea&amp;dl=1&#39;)&quot;&gt;Nirvana Come As You Are&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/5m1p7pfqsgmxplpgntwwz/Nirvana-HeartShaped-Box.mp3?rlkey=ie7y1cuf5n3dlc6gq59g3eei7&amp;st=sla0022r&amp;dl=1&#39;)&quot;&gt;Nirvana HeartShaped&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/az4fmf2nuiog9rf22a3d2/Nirvana-In-Bloom.mp3?rlkey=n1jerat7vpe3342kjjaid57k6&amp;st=mos2w48g&amp;dl=1&#39;)&quot;&gt;/Nirvana In Bloom&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/9b7965bzs0616t84bjsm9/Nirvana-Lithium.mp3?rlkey=h2edse4f0x3pvh4huxjxckiyx&amp;st=ouuqsb89&amp;dl=1&#39;)&quot;&gt;Nirvana Lithium&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/ofqflob2232sc30as8gpx/Nirvana-Smells-Like-Teen-Spirit.mp3?rlkey=vi9qo5o1a3axenbvoe5s45t9q&amp;st=lmjeap99&amp;dl=1&#39;)&quot;&gt;Nirvana Smells Like Teen Spirit&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/dqhty7c3hug31saq1crh8/Nirvana-The-Man-Who-Sold.mp3?rlkey=45de2ponwpp93yowm37v93wm3&amp;st=60vioo5s&amp;dl=1&#39;)&quot;&gt;Nirvana The Man Who Sold&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/s9cu2n3nt8cuqe2bm0594/Nirvana-Where-Did-You-Sleep-Last-Night.mp3?rlkey=eyc0iyzw1ien9v8s0etgim0ze&amp;st=msumjmtk&amp;dl=1&#39;)&quot;&gt;Nirvana Where Did You Sleep Last Night&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/sgekbg7betbwhtaqq6lv1/Nirvana-You-Know-Youre-Right.mp3?rlkey=5vlz4421812ckeb1t3i6mjqc9&amp;st=d38r66zs&amp;dl=1&#39;)&quot;&gt;Nirvana You Know Youre Right&lt;/li&gt;
       &lt;/ul&gt;
        &lt;button class=&quot;play-all-button&quot; onclick=&quot;playAll()&quot;&gt;Reproducir Todo&lt;/button&gt;
        &lt;button class=&quot;play-random-button&quot; onclick=&quot;playRandom()&quot;&gt;Reproducción Aleatoria&lt;/button&gt;
    &lt;/div&gt;

    &lt;script&gt;
        let playlist = [
            &#39;https://www.dropbox.com/scl/fi/hxobnz7psnnhuc9txabhg/Nirvana-About-A-Girl.mp3?rlkey=p2qwpqywblydhb3haeu7u0sts&amp;st=gbnd3t5j&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/cfustpdt7drykj4jr5qoy/Nirvana-All-Apologies.mp3?rlkey=9kjcjitvhpi3nchrhyzumggii&amp;st=ujm8317h&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/bziyrv96xgu8nw7pnv1l7/Nirvana-Come-As-You-Are.mp3?rlkey=0kw8jhnhl1oa6k70b4984r4zb&amp;st=m2ap7bea&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/5m1p7pfqsgmxplpgntwwz/Nirvana-HeartShaped-Box.mp3?rlkey=ie7y1cuf5n3dlc6gq59g3eei7&amp;st=sla0022r&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/az4fmf2nuiog9rf22a3d2/Nirvana-In-Bloom.mp3?rlkey=n1jerat7vpe3342kjjaid57k6&amp;st=mos2w48g&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/9b7965bzs0616t84bjsm9/Nirvana-Lithium.mp3?rlkey=h2edse4f0x3pvh4huxjxckiyx&amp;st=ouuqsb89&amp;dl=1&#39;,
            &#39;hhttps://www.dropbox.com/scl/fi/ofqflob2232sc30as8gpx/Nirvana-Smells-Like-Teen-Spirit.mp3?rlkey=vi9qo5o1a3axenbvoe5s45t9q&amp;st=lmjeap99&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/dqhty7c3hug31saq1crh8/Nirvana-The-Man-Who-Sold.mp3?rlkey=45de2ponwpp93yowm37v93wm3&amp;st=60vioo5s&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/s9cu2n3nt8cuqe2bm0594/Nirvana-Where-Did-You-Sleep-Last-Night.mp3?rlkey=eyc0iyzw1ien9v8s0etgim0ze&amp;st=msumjmtk&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/sgekbg7betbwhtaqq6lv1/Nirvana-You-Know-Youre-Right.mp3?rlkey=5vlz4421812ckeb1t3i6mjqc9&amp;st=d38r66zs&amp;dl=1&#39;,
        ];
        
        let currentSongIndex = 0;

        function changeAudio(url) {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = url;
            audioPlayer.play();
            currentSongIndex = playlist.indexOf(url); // Set current index to the selected song
        }

        function playAll() {
            currentSongIndex = 0; // Reset to the first song
            playNext(); // Start playing the first song
        }

        function playRandom() {
            currentSongIndex = Math.floor(Math.random() * playlist.length); // Set to a random song
            playNext(); // Start playing the randomly selected song
        }

        function playNext() {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = playlist[currentSongIndex];
            audioPlayer.play();
            
            currentSongIndex++;
            if (currentSongIndex &gt;= playlist.length) {
                currentSongIndex = 0; // Reset to the first song if we reach the end
            }

            audioPlayer.onended = playNext; // Play next song when current one ends
        }
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;













&lt;style&gt;
/* Estilos para la animación de entrada */
.image-container {
  opacity: 0;
  transform: translateY(500px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  margin: 20px 0;
  text-align: center; /* Centra horizontalmente el contenido */
}

.show {
  opacity: 1;
  transform: translateY(0);
}

.image-container img {
  position: relative;
  left: 50%;              /* Lleva la imagen al centro del contenedor */
  transform: translateX(-50%); /* Ajusta la imagen para centrarla completamente */
}

/* Estilo responsivo para pantallas pequeñas */
@media (max-width: 768px) {
  .image-container {
    transform: translateY(50px);
  }
  
  .image-container img {
    left: 50%;              /* Mantener centrado en dispositivos móviles */
    transform: translateX(-50%);
    max-width: 100%;         /* Asegura que la imagen no se desborde */
    height: auto;            /* Mantiene la proporción de la imagen */
  }
}
&lt;/style&gt;




 




&lt;/!doctype&gt;

&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 1&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDwcERAJP1XnsuKHJd8jSry5TPCVAOzni0HCAoCg4o8UARZoEruBC-F4AMFRbVqqrJ9B-MG7olbqFJGglKjtnbLtZB3ihLSmyZOqrkbBAwzNyADTXJzvq7nnm4ChlQnPGvSj5nCpZKRQVSYUddlsk64qtvWdkHQY3x9iQhsDMFgqs7fw/s1600/nirvana4.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;






&lt;!------- inicio ---------&gt; 
&lt;div class=&quot;letrero&quot;&gt;
    &lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Nirvana
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;!------- fin ---------&gt;






&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 300px; /* Ajusta el ancho máximo del contenedor */
            margin: auto; /* Centra el contenedor en la página */
            text-align: center; /* Centra el contenido dentro del contenedor */
            padding: 10px; /* Espacio interno (opcional) */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2&gt;Escucha La Biografía&lt;/h2&gt;
        &lt;iframe src=&quot;https://drive.google.com/file/d/1RRxfZjGc69pHt-wnrVA5Hwf_xCc2q-Ps/preview&quot; width=&quot;100%&quot; height=&quot;50&quot; allow=&quot;autoplay&quot;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;








&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Nirvana

Banda de rock estadounidense formada hacia 1986 por Kurt Cobain y Krist Novoselic. A pesar de su corta existencia como grupo, y del suicidio de Cobain en 1994, su música cosechó un tremendo éxito en todo el mundo, hasta el punto de que Nirvana fue considerada una de las mejores bandas de rock de la época y la abanderada del movimiento Grunge.

Kurt Cobain y Krist Novoselic pasaron parte de su adolescencia en la ciudad de Aberdeen (estado de Washington). Juntos habían tocado en algunas bandas de la zona de Washington, como The Sellouts, Skid Row o The Stiff Woodies.

Nirvana

En 1988 grabaron una maqueta y el sello Sub Pop les ofreció grabar un sencillo. Casi al mismo tiempo que se producían cambios en el asiento del batería; el puesto lo ocupó definitivamente Chad Channing. Love Buzz se editó en noviembre de ese año, y en junio de 1989 vio la luz Bleach, el primer álbum de la banda, fresco y amargo a la vez, producido por el gurú Jack Endino. Ese mismo año se les unió Jason Everman como segundo guitarra, unión efímera de sólo unos meses, y poco después se embarcaron en una gira por Europa con TAD.

En mayo de 1990, al final de la gira americana, Channing dejó el grupo. Después de estos cambios, Dave Grohl ocuparía finalmente este puesto, tras editar un single, Sliver, en el que todavía tocaba Channing en una cara y en la otra, Dan Peters, de Mudhoney. También marcó su primera colaboración con el productor Butch Vig, otro gurú de la después llamada &quot;movida Grunge&quot;, y más conocido últimamente por su nuevo grupo, Garbage.
&lt;/span&gt;&lt;/p&gt;




&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7w9ha3f2ngfXhivue6SloT7WCy5pFb4Xd5wM0xlfq0JtxaFQSLl3HIw4ess60JWfRL8C59iCn6Jt3bp8f0TyDY_2UUPUkBwXDOcDcYKStDEbbpuXM3V0EPrYMftzHwTm-TOp0k7Ey6jHwbrbnc4_yndaPC9iF81BQ6s-gGPcM49R8Q/s1600/nirvana2.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;



&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Con Butch Vig grabaron su primer álbum para Geffen, Nevermind, editado en septiembre de 1991, que tardaría menos de un mes en vender medio millón de copias en USA. El vídeo del primer single extraído del larga duración Smells Like Teen Spirit fue emitido masivamente por la MTV, contribuyendo a su rápida expansión por el globo. El álbum llegó a número uno en las listas de Estados Unidos en enero de 1992.

Aunque el paso a una multinacional discográfica se dejó notar en algo del contenido del disco, su segundo larga duración siguió la línea abierta por Bleach: sentimientos y pasiones prevalecen sobre la perfección técnica y, ayudados por una buena promoción, se encumbraron como abanderados del movimiento Grunge.
&lt;/span&gt;&lt;/p&gt;





&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljIEuW69fqw9P77bRl59iWzESiPNcF-OfOh5jvs2NsR-gFz2px8Rz5FDSB8V_bzQl6-KAw4-_lwmHD54ZLQXEzrgZm-J9L04bdwxD9iCxnTYpmIMiVvEVJy6ugaD-ZL_roMd_uefSwdU_a4CyBbDfydF2B3rH-n70Pb8IsWS8ybuKuQ/s1600/nirvana3.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;




&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Portada de In Utero (1993), su último álbum

Poco después, Kurt Cobain se casó con Courtney Love, líder de la banda Hole. Realizaron giras en verano por Europa (por entonces nació Frances Bean, hija del matrimonio) y comenzaron a grabar su próximo trabajo a finales de ese año con el legendario Steve Albini. Este productor y músico norteamericano, que había militado en Big Black y formó después Rapeman, había producido a infinidad de bandas, como The Breeders o Pixies, antes de trabajar con el trío.

In Utero fue el título elegido para este trabajo, del que se extrajo Heart-Shaped Box como single de adelanto, en septiembre de 1993. Entre estos dos álbumes se editó Incesticide a finales de 1992, recopilación de caras B e inéditos, hábil maniobra comercial de su sello, tratando de hacer parecer a Nirvana un grupo AOR (Adult Orient Rock, o &quot;rock adulto&quot;) en cuanto a regularidad se refiere, cosa difícil, dado el particular carácter de Kurt Cobain.

El final del año 1993 y el principio de 1994 fue tumultuoso, con llamadas a la policía desde su casa de Seattle y con un ingreso en un hospital de Roma, preludios claros del fatal desenlace: el suicidio de Cobain en Seattle, en abril de 1994.

 
&lt;/span&gt;&lt;/p&gt;


&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglcopUiHSiQFzEHIHFccJEu2UL4zPvZ1G1YVUqvP8tAlAOdVrhlozbvfSTYgGjcz1kTwebkeKcJWsx4IDqXBi2MBjfaYajnEd6yNwye7TWaPMWxqDI3AdW0S6IlWpTz2hs1ZvhN47YBTE0SVARl7KCR2AaOopyi8wgZPsNphyQ-nnSaQ/s1600/nirvana1.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Nirvana dejó de existir como grupo, y aunque algún tiempo más tarde Krist Novoselic volvió a empezar desde abajo con un nuevo grupo llamado Sweet 75, con el cual trabajó con total independencia, nunca llegó a obtener gran repercusión internacional.

En 1995 Dave Grohl decidió seguir adelante por su cuenta, y grabó en solitario lo que sería su primer álbum con un nuevo grupo. Sólo su amigo Greg Dulli (de los Afghan Whigs) le ayudó con algún aporte en forma de guitarra eléctrica, y en verano del año 1995 salió a la luz el primer álbum de The Foo Fighters. Una vez editado el disco, reclutó a Pat Smear (antes en The Germs y en Nirvana) y a dos ex miembros de Sunny Day Real Estate, Nate Mendel y William Goldsmith, ya como formación permanente. Este primer álbum consiguió una excepcional acogida entre la crítica y el público, mezclando algo del Grunge del pasado junto a un explosivo Power-pop. En 1997 editaron su segundo disco, The Colour and the Shape, que siguió la línea de su predecesor en cuanto a estilo y éxitos.

A finales de 2004, tras los interminables pleitos entre los supervivientes de Nirvana (Novoselic, Grohl, la viuda de Cobain, Courtney Love, y la discográfica propietaria de los derechos de las canciones), vio la luz With the Lights Out, un álbum con sesenta y ocho temas inéditos, entre ensayos y grabaciones domésticas del grupo, que colocó de nuevo a Nirvana en las primeras páginas de la prensa musical de todo el mundo.


 
&lt;/span&gt;&lt;/p&gt;



&lt;script&gt;
  const initAnimation = () =&gt; {
    const containers = document.querySelectorAll(&#39;.image-container&#39;);

    const startAnimation = (container) =&gt; {
      container.classList.add(&#39;show&#39;);
    };

    const hideAnimation = (container) =&gt; {
      container.classList.remove(&#39;show&#39;);
    };

    const checkVisibility = () =&gt; {
      containers.forEach((container) =&gt; {
        const rect = container.getBoundingClientRect();
        if (rect.top &lt; window.innerHeight &amp;&amp; rect.bottom &gt; 0) {
          startAnimation(container);
        } else {
          hideAnimation(container);
        }
      });
    };

    window.addEventListener(&#39;scroll&#39;, checkVisibility);
    checkVisibility(); // Verificar al cargar la página
  };

  window.onload = initAnimation;
&lt;/script&gt;












































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/anglo_stereo/nirvana/nirvana.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-nirvana&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/anglo_stereo/nirvana.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/nirvana.html</link><author>noreply@blogger.com (epifanio sambrota)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglo1uWlE9vEe-bttZS2qhKoFFdi0qSxsZ51y9WgmHVu18kWfs_9kU8La37ACwOXzOaLFyYliTJn9koNaTG78XrMB-fmreiZmKuZCKrYs9fmaeRE-DahI6D7307NeYxw0MYGiCQKS-inGVBQwgCPs5s0Ucldgnay6HevmHcoTxQXbZ4AQ/s72-c/nirvana%20logo.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-7998451203965200131</guid><pubDate>Sat, 05 Jul 2025 01:35:00 +0000</pubDate><atom:updated>2025-07-04T18:35:53.912-07:00</atom:updated><title>Guns And Roses</title><description>








&lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisKeK5snZugiVNZkeqUfJicinMlmESzvpu-V1ztXUmYsm_8Li_SPDl287xC6Z1eQrDtuf-uc1LHhdpSpUHS9-cr6u6L_NYEl9J9z8_e_Tx7Lny7XX8DPRiWwbLnYsrabrz_0NPRKxO2VynrLPYadlc_Lhpv1Nwwj7M5ZbWaQ1w9M4PUQ/s1600/logo.png&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 90%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 100%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;





    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Guns N&#39; Roses&lt;/h1&gt;
    &lt;/div&gt;





&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 400px;
            margin: auto;
            text-align: center;
        }

        audio {
            width: 100%;
        }

        .playlist {
            list-style-type: none;
            padding: 0;
        }

        .playlist li {
            cursor: pointer;
            margin: 5px 0;
            padding: 5px;
            background-color: #f0f0f0;
            border: 1px solid #ccc;
            border-radius: 5px;
            text-align: center;
        }

        .playlist li:hover {
            background-color: #d0d0d0;
        }

        .play-all-button, .play-random-button {
            margin-top: 10px;
            padding: 10px 15px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }

        .play-all-button:hover, .play-random-button:hover {
            background-color: #45a049;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2 style=&quot;color: #F1F1F1;&quot;&gt;Discografía - Top&lt;/h2&gt;

      &lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7kAQVqZZcrihAQ-CDPn-WI4iwlM6uqrhkbfdqzaxCKNA6U7Ug824SkGIMTL5dtwhLZFjffYICaV9jqDpVryWRxlkDi4eivrOZYdsUcWf8MNNPEa8jtMhHHT0s5R_4NASWg48WFve-Tjz3TAltnqNFNk4hylqoJ12aaHCFxCYd0PQwA/s1600/KZ95.gif&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 100%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 100%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;
        &lt;audio id=&quot;audioPlayer&quot; controls autoplay controlslist=&quot;nodownload&quot;&gt;
            &lt;source src=&quot;https://www.dropbox.com/scl/fi/vsskky8bkmt4vs1iz9nu5/Sean-Paul-Get-Busy.mp3?rlkey=8cd89exa6vknrrsnsh2x7floz&amp;st=bouko2zf&amp;dl=1&quot; type=&quot;audio/mpeg&quot;&gt;
            Tu navegador no soporta el elemento de audio.
        &lt;/audio&gt;
        &lt;ul class=&quot;playlist&quot;&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/cogmz0j96odf70pi9c11e/Guns-N-Roses-Dont-Cry.mp3?rlkey=j9vaw8l8nij1jhk0eoc2m97ne&amp;st=aqy1ngns&amp;dl=1&#39;)&quot;&gt;Guns N Roses Dont Cry&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/oxqz09xihejs1djzu38u8/Guns-N-Roses-Estranged.mp3?rlkey=0g33953g9lcr23k6tq7y9lu0j&amp;st=awmi63xq&amp;dl=1&#39;)&quot;&gt;Guns N Roses Estranged&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/5ecmppdx3zt2fypukxtee/Guns-N-Roses-November-Rain.mp3?rlkey=fakxjwi5qz5x13cggjksfsvhp&amp;st=xb4nskpc&amp;dl=1&#39;)&quot;&gt;Guns N Roses November Rain&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/c3rkkb2rs00rlp5dyr12c/Guns-N-Roses-Paradise.mp3?rlkey=u60k0bw02qcg04bi2wgy51fzh&amp;st=k1f6yri6&amp;dl=1&#39;)&quot;&gt;Guns N Roses Paradise&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/oa4rm0rr2xj0luzn12krx/Guns-N-Roses-Patience.mp3?rlkey=xm0xpu7le2ge74mvw30om8o0k&amp;st=2514oylq&amp;dl=1&#39;)&quot;&gt;Guns N Roses Patience&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/kdp8qacuny5d1axcsduxk/Guns-N-Roses-Since-I-Dont-Have-You.mp3?rlkey=4yr5hpy1xeevdou9o0xtabj4v&amp;st=i3xi6p3v&amp;dl=1&#39;)&quot;&gt;Guns N Roses Since I Dont Have You&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/2z5mko4j1chvi1w6sc4ao/Guns-N-Roses-Sweet-Child-O-Mine.mp3?rlkey=9g1wxo2zjkltbujhozvgyv2s8&amp;st=iyk8qafr&amp;dl=1&#39;)&quot;&gt;Guns N Roses Sweet Child O Mine&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/ndxyilz2xoywppvbyu57n/Guns-N-Roses-Welcome-To-The-Jungle.mp3?rlkey=ck9z94zozrsjznx6c72uy4pjy&amp;st=ummqd3fz&amp;dl=1&#39;)&quot;&gt;Guns N Roses Welcome To The Jungle&lt;/li&gt;
       &lt;/ul&gt;
        &lt;button class=&quot;play-all-button&quot; onclick=&quot;playAll()&quot;&gt;Reproducir Todo&lt;/button&gt;
        &lt;button class=&quot;play-random-button&quot; onclick=&quot;playRandom()&quot;&gt;Reproducción Aleatoria&lt;/button&gt;
    &lt;/div&gt;

    &lt;script&gt;
        let playlist = [
            &#39;https://www.dropbox.com/scl/fi/cogmz0j96odf70pi9c11e/Guns-N-Roses-Dont-Cry.mp3?rlkey=j9vaw8l8nij1jhk0eoc2m97ne&amp;st=aqy1ngns&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/oxqz09xihejs1djzu38u8/Guns-N-Roses-Estranged.mp3?rlkey=0g33953g9lcr23k6tq7y9lu0j&amp;st=awmi63xq&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/5ecmppdx3zt2fypukxtee/Guns-N-Roses-November-Rain.mp3?rlkey=fakxjwi5qz5x13cggjksfsvhp&amp;st=xb4nskpc&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/c3rkkb2rs00rlp5dyr12c/Guns-N-Roses-Paradise.mp3?rlkey=u60k0bw02qcg04bi2wgy51fzh&amp;st=k1f6yri6&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/oa4rm0rr2xj0luzn12krx/Guns-N-Roses-Patience.mp3?rlkey=xm0xpu7le2ge74mvw30om8o0k&amp;st=2514oylq&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/kdp8qacuny5d1axcsduxk/Guns-N-Roses-Since-I-Dont-Have-You.mp3?rlkey=4yr5hpy1xeevdou9o0xtabj4v&amp;st=i3xi6p3v&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/2z5mko4j1chvi1w6sc4ao/Guns-N-Roses-Sweet-Child-O-Mine.mp3?rlkey=9g1wxo2zjkltbujhozvgyv2s8&amp;st=iyk8qafr&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/ndxyilz2xoywppvbyu57n/Guns-N-Roses-Welcome-To-The-Jungle.mp3?rlkey=ck9z94zozrsjznx6c72uy4pjy&amp;st=ummqd3fz&amp;dl=1&#39;,
        ];
        
        let currentSongIndex = 0;

        function changeAudio(url) {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = url;
            audioPlayer.play();
            currentSongIndex = playlist.indexOf(url); // Set current index to the selected song
        }

        function playAll() {
            currentSongIndex = 0; // Reset to the first song
            playNext(); // Start playing the first song
        }

        function playRandom() {
            currentSongIndex = Math.floor(Math.random() * playlist.length); // Set to a random song
            playNext(); // Start playing the randomly selected song
        }

        function playNext() {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = playlist[currentSongIndex];
            audioPlayer.play();
            
            currentSongIndex++;
            if (currentSongIndex &gt;= playlist.length) {
                currentSongIndex = 0; // Reset to the first song if we reach the end
            }

            audioPlayer.onended = playNext; // Play next song when current one ends
        }
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;














&lt;style&gt;
/* Estilos para la animación de entrada */
.image-container {
  opacity: 0;
  transform: translateY(500px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  margin: 20px 0;
  text-align: center; /* Centra horizontalmente el contenido */
}

.show {
  opacity: 1;
  transform: translateY(0);
}

.image-container img {
  position: relative;
  left: 50%;              /* Lleva la imagen al centro del contenedor */
  transform: translateX(-50%); /* Ajusta la imagen para centrarla completamente */
}

/* Estilo responsivo para pantallas pequeñas */
@media (max-width: 768px) {
  .image-container {
    transform: translateY(50px);
  }
  
  .image-container img {
    left: 50%;              /* Mantener centrado en dispositivos móviles */
    transform: translateX(-50%);
    max-width: 100%;         /* Asegura que la imagen no se desborde */
    height: auto;            /* Mantiene la proporción de la imagen */
  }
}
&lt;/style&gt;




 




&lt;/!doctype&gt;

&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 1&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN41QFXhpgKOwGLvF0DmzP_-RC0EqsXTdoG-oNRFKP-vHDcmHbNuKtIS4RQvnFfkLkGgmSy8j1UyVk5xrwqL9lSNL9qgxVlDtDS2XrQW6_jbIxXhjL50I9eJWEUNoEv3zY8zik0Ag-5IcpSqqYNBVuOa29O5aVvyhjv9xQfMJcHkhgXg/s1600/guns%20and%20roses1.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;






&lt;!------- inicio ---------&gt; 
&lt;div class=&quot;letrero&quot;&gt;
    &lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Guns N&#39; Roses 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;!------- fin ---------&gt;






&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 300px; /* Ajusta el ancho máximo del contenedor */
            margin: auto; /* Centra el contenedor en la página */
            text-align: center; /* Centra el contenido dentro del contenedor */
            padding: 10px; /* Espacio interno (opcional) */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2&gt;Escucha La Biografía&lt;/h2&gt;
        &lt;iframe src=&quot;https://drive.google.com/file/d/1tGUjVSOJ6YfziCTK8NHhR70oJdFQPM2Z/preview&quot; width=&quot;100%&quot; height=&quot;50&quot; allow=&quot;autoplay&quot;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;








&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Guns N&#39; Roses: La leyenda del rock rebelde

Guns N&#39; Roses es una banda de rock estadounidense que nació en 1985 en Los Ángeles, cuando el cantante Axl Rose (William Bill Bailey, 1962) y el guitarrista Slash (Saul Hudson, 1965) unieron fuerzas para crear algo especial. Su estilo provocador y su lema “sexo, drogas y rock and roll” no tardaron en causar revuelo, y no faltaron quienes querían censurarlos en Estados Unidos. Pero esto no detuvo a Guns N&#39; Roses, que con su mezcla de rock duro y punk conquistaron al público. Su primer gran éxito fue el álbum Appetite for Destruction (1987), que vendió ocho millones de copias solo en EE. UU. Luego, sus discos Use Your Illusion I y II (1991) y The Spaghetti Incident? (1993) también fueron un rotundo éxito.
&lt;/span&gt;&lt;/p&gt;




&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhHAJ3rPVs69h22w9jvp2ppTzqm_5HjAEkJ-rCEk2aPrGo_keX3FiveFQbUW1d7jB3CtvelrgxGZ_UIv4Z5jIDwP3fTBkW9VPQAOvZ_wylTdAc5KKPCUnYBiwzItO6cMNS1iEFaCVzndX68QT8hWbaP5z5nvNxi4srJXg3HXG4-ZXEhA/s1600/guns%20and%20roses4.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;



&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Su primer trabajo, Live... Like a Suicide (1986), no tuvo mucho impacto, pero luego de una serie de conciertos por California, Geffen Records los fichó a finales de ese año. Poco después, la banda se unió a una gira con los legendarios Iron Maiden, aunque no pudieron completarla: Axl perdió la voz y Slash tuvo que ser internado por sus excesos con el alcohol y las drogas. Al recuperarse, Guns N&#39; Roses regresó con fuerza, acompañando a Mötley Crüe y lanzando su primer álbum de estudio, Appetite for Destruction. Con este disco y una gira intensa, se convirtieron en los reyes del rock en vivo, incluso superando a Aerosmith. En 1988, el sencillo Sweet Child o&#39; Mine se convirtió en su primer número uno, recibiendo un Grammy a la mejor canción de rock del año.
&lt;/span&gt;&lt;/p&gt;





&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjae8i6eUinObTG5xQTOhe8ES9L5i9y-wPQLG6rB2SInBoKYAyjPMOlWYE1HXcVHZ2CeqTKRqseCee7XU9FA5hyphenhyphennmrXziKhvM5EjMC3w2UsyAb2pTtJ-3DtQB5C5Oe9Gy5UrdRRH9_IBDzl8n1QmVzPsXWcXhMy1M694_9ssnmxv5US7g/s1600/guns%20and%20roses3.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;




&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Tras un frenético 1988, lanzaron G &#39;N&#39; R Lies, un disco que combinaba temas de su debut y nuevas canciones, justo cuando estaban de gira en Japón. En 1991, la banda lanzó el ambicioso proyecto Use Your Illusion, dividido en dos discos dobles (I y II), con grandes temas como Estranged, Civil War, Don&#39;t Damn Me y una versión del clásico de Bob Dylan Knockin&#39; on Heaven&#39;s Door. Aunque no fue el éxito que esperaban, dejó huella en su carrera.

Sin embargo, la vida intensa de los miembros de la banda provocó varias pausas. En 1992, Izzy Stradlin, compositor de muchos de sus temas, dejó la banda para formar su propio grupo, The Ju Ju Hounds. El último álbum de Guns N&#39; Roses en su primera etapa, The Spaghetti Incident?, fue un tributo a las canciones y bandas que marcaron su sonido. Sin embargo, el lanzamiento fue polémico, pues Geffen Records vetó una canción escrita por el infame Charles Manson.

 
&lt;/span&gt;&lt;/p&gt;


&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTQgN6RerNx8SKbYD9OtV38M57o9QRqHNEJ-Q3NwI-6Z1SWWmOP8NZQuqfADBuaTcm23UYmVgSSHghyphenhyphenOOM9YEEFDyJ5uXbmu_ycKegtU9TG_DIpsC6p9R8d0w07-5LLzihz-pGEAUYY1yfEF4_HxMzkdwlDduf6e04OxC_Tca99DFsiQ/s1600/guns%20and%20roses2.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;A mediados de los 90, Guns N&#39; Roses ya era una leyenda internacional, pero como grupo estaban cada vez más distantes. Slash comenzó a colaborar con artistas como Michael Jackson, Iggy Pop, y Lenny Kravitz, mientras que Izzy Stradlin continuó en la escena local con The Ju Ju Hounds. En 1999, Geffen Records lanzó Live Era &#39;87-93&#39;, un álbum en vivo que recopilaba sus mayores éxitos, con algunos retoques de estudio.

Ese mismo año, incluyeron la canción Oh My God en la película El final de los días (1999), lo cual reavivó los rumores sobre una posible reunión. Aunque no todos los miembros originales volvieron, Axl Rose decidió reformar la banda con nuevos integrantes. Guns N&#39; Roses regresó a los escenarios en 2001, y en 2008 lanzaron Chinese Democracy, el primer disco de su nueva etapa, apoyado por una gira con el mismo nombre.


 
&lt;/span&gt;&lt;/p&gt;



&lt;script&gt;
  const initAnimation = () =&gt; {
    const containers = document.querySelectorAll(&#39;.image-container&#39;);

    const startAnimation = (container) =&gt; {
      container.classList.add(&#39;show&#39;);
    };

    const hideAnimation = (container) =&gt; {
      container.classList.remove(&#39;show&#39;);
    };

    const checkVisibility = () =&gt; {
      containers.forEach((container) =&gt; {
        const rect = container.getBoundingClientRect();
        if (rect.top &lt; window.innerHeight &amp;&amp; rect.bottom &gt; 0) {
          startAnimation(container);
        } else {
          hideAnimation(container);
        }
      });
    };

    window.addEventListener(&#39;scroll&#39;, checkVisibility);
    checkVisibility(); // Verificar al cargar la página
  };

  window.onload = initAnimation;
&lt;/script&gt;

































































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/anglo_stereo/guns_and_roses/guns_and_roses.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-guns_n_roses&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/anglo_stereo/guns_and_roses.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/guns-and-roses.html</link><author>noreply@blogger.com (epifanio sambrota)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisKeK5snZugiVNZkeqUfJicinMlmESzvpu-V1ztXUmYsm_8Li_SPDl287xC6Z1eQrDtuf-uc1LHhdpSpUHS9-cr6u6L_NYEl9J9z8_e_Tx7Lny7XX8DPRiWwbLnYsrabrz_0NPRKxO2VynrLPYadlc_Lhpv1Nwwj7M5ZbWaQ1w9M4PUQ/s72-c/logo.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-2978622123431154617</guid><pubDate>Sat, 05 Jul 2025 01:35:00 +0000</pubDate><atom:updated>2025-07-04T18:35:21.422-07:00</atom:updated><title>Aerosmith</title><description>









&lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRuRgBvxfSsegLfkrNx35KhVp1cbtvHKPcPK_Sw0rgS73-K4hLnlABXGKzRb1xrxj2RR8HUO4yHlxuXTdZoo2rCWrAIie_FPHGiyct2J0snqXMdCCLkQt5_4E_rnzDN3tC0UT-0xxQteW2omy4C_QyLsOohUBkmyO-YkOU51gO7NEm-Q/s1600/aerosmith%20logo.png&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 150%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 150%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;





    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Aerosmith&lt;/h1&gt;
    &lt;/div&gt;





&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 400px;
            margin: auto;
            text-align: center;
        }

        audio {
            width: 100%;
        }

        .playlist {
            list-style-type: none;
            padding: 0;
        }

        .playlist li {
            cursor: pointer;
            margin: 5px 0;
            padding: 5px;
            background-color: #f0f0f0;
            border: 1px solid #ccc;
            border-radius: 5px;
            text-align: center;
        }

        .playlist li:hover {
            background-color: #d0d0d0;
        }

        .play-all-button, .play-random-button {
            margin-top: 10px;
            padding: 10px 15px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }

        .play-all-button:hover, .play-random-button:hover {
            background-color: #45a049;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2 style=&quot;color: #F1F1F1;&quot;&gt;Discografía - Top&lt;/h2&gt;

      &lt;div class=&quot;gif-container&quot;&gt;
  &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7kAQVqZZcrihAQ-CDPn-WI4iwlM6uqrhkbfdqzaxCKNA6U7Ug824SkGIMTL5dtwhLZFjffYICaV9jqDpVryWRxlkDi4eivrOZYdsUcWf8MNNPEa8jtMhHHT0s5R_4NASWg48WFve-Tjz3TAltnqNFNk4hylqoJ12aaHCFxCYd0PQwA/s1600/KZ95.gif&quot; /&gt;
&lt;/div&gt;

&lt;style&gt;
.gif-container {
  display: flex; /* Usar Flexbox para centrar el contenido */
  justify-content: center; /* Centrar horizontalmente */
  margin: 20px auto; /* Espacio arriba y abajo, y centrar el contenedor */
  width: 100%; /* O 80% según necesites */
}

.responsive-gif {
  max-width: 100%; /* Ajustar al tamaño del contenedor */
  height: auto; /* Mantener la proporción */
  width: 300px; /* Cambia este valor al tamaño deseado */
}
&lt;/style&gt;
        &lt;audio id=&quot;audioPlayer&quot; controls autoplay controlslist=&quot;nodownload&quot;&gt;
            &lt;source src=&quot;https://www.dropbox.com/scl/fi/vsskky8bkmt4vs1iz9nu5/Sean-Paul-Get-Busy.mp3?rlkey=8cd89exa6vknrrsnsh2x7floz&amp;st=bouko2zf&amp;dl=1&quot; type=&quot;audio/mpeg&quot;&gt;
            Tu navegador no soporta el elemento de audio.
        &lt;/audio&gt;
        &lt;ul class=&quot;playlist&quot;&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/iopabz4gwpt5z49qmr7mf/Aerosmith-Amazing.mp3?rlkey=99m12dee3k74w0exk1ehsypul&amp;st=gh81k3ss&amp;dl=1&#39;)&quot;&gt;Aerosmith Amazing&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/wra26lybuinim8jbk6yba/Aerosmith-Angel.mp3?rlkey=b0x56sccqkdoqbqdo0q8oi3lo&amp;st=nqec40ks&amp;dl=1&#39;)&quot;&gt;Aerosmith Angel&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/807schx6fuc5x124uf2nu/Aerosmith-Crazy.mp3?rlkey=e2b2c9e3iyuhjkw1bk6jnoxri&amp;st=i6rr6kpc&amp;dl=1&#39;)&quot;&gt;Aerosmith Crazy&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/ujhvs3gy3zvgbh8nby6oj/Aerosmith-Cryin.mp3?rlkey=04t6qzgxl0f1uu11qlen519ud&amp;st=e3wfme49&amp;dl=1&#39;)&quot;&gt;Aerosmith Cryin&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/7kjji8lk16ibssrtme148/Aerosmith-Dream-On.mp3?rlkey=yqjndo0jdk0ejs8mhmdd27key&amp;st=xeyead3b&amp;dl=1&#39;)&quot;&gt;Aerosmith Dream On&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/wbtch6qzxt8v5a1trjd1i/Aerosmith-Fly-Away-From-Here.mp3?rlkey=2m2ny6vbwpdjjj27w6b8k5ghp&amp;st=5doq7hm9&amp;dl=1&#39;)&quot;&gt;Aerosmith Fly Away From Here&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/8qbkxvk3por6yv12qz41d/Aerosmith-Hole-In-My-Soul.mp3?rlkey=rhg2yq7ddrbflm3ngjmiy7xnp&amp;st=jf1ez8rq&amp;dl=1&#39;)&quot;&gt;Aerosmith Hole In My Soul&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/dcuepn1c70bxz439yziy0/Aerosmith-I-Dont-Want-to-Miss-a-Thing.mp3?rlkey=mj7q61d876g730mybo1dnh6zr&amp;st=loflj25m&amp;dl=1&#39;)&quot;&gt;Aerosmith I Dont Want to Miss a Thing&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/fknqwlpzstaobred2d6vi/Aerosmith-Janies-Got-A-Gun.mp3?rlkey=93wop6ulsso0hyr3g03zvbmgu&amp;st=fpo4bada&amp;dl=1&#39;)&quot;&gt;Aerosmith Janies Got A Gun&lt;/li&gt;
            &lt;li onclick=&quot;changeAudio(&#39;https://www.dropbox.com/scl/fi/a9ztkx8sfapujjr70royf/Aerosmith-Livin-On-The-Edge.mp3?rlkey=gotil1qsc5csdtdzn91rv5gt2&amp;st=ig5ag7fg&amp;dl=1&#39;)&quot;&gt;Aerosmith Livin On The Edge&lt;/li&gt;
       &lt;/ul&gt;
        &lt;button class=&quot;play-all-button&quot; onclick=&quot;playAll()&quot;&gt;Reproducir Todo&lt;/button&gt;
        &lt;button class=&quot;play-random-button&quot; onclick=&quot;playRandom()&quot;&gt;Reproducción Aleatoria&lt;/button&gt;
    &lt;/div&gt;

    &lt;script&gt;
        let playlist = [
            &#39;https://www.dropbox.com/scl/fi/iopabz4gwpt5z49qmr7mf/Aerosmith-Amazing.mp3?rlkey=99m12dee3k74w0exk1ehsypul&amp;st=gh81k3ss&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/wra26lybuinim8jbk6yba/Aerosmith-Angel.mp3?rlkey=b0x56sccqkdoqbqdo0q8oi3lo&amp;st=nqec40ks&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/807schx6fuc5x124uf2nu/Aerosmith-Crazy.mp3?rlkey=e2b2c9e3iyuhjkw1bk6jnoxri&amp;st=i6rr6kpc&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/ujhvs3gy3zvgbh8nby6oj/Aerosmith-Cryin.mp3?rlkey=04t6qzgxl0f1uu11qlen519ud&amp;st=e3wfme49&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/7kjji8lk16ibssrtme148/Aerosmith-Dream-On.mp3?rlkey=yqjndo0jdk0ejs8mhmdd27key&amp;st=xeyead3b&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/wbtch6qzxt8v5a1trjd1i/Aerosmith-Fly-Away-From-Here.mp3?rlkey=2m2ny6vbwpdjjj27w6b8k5ghp&amp;st=5doq7hm9&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/8qbkxvk3por6yv12qz41d/Aerosmith-Hole-In-My-Soul.mp3?rlkey=rhg2yq7ddrbflm3ngjmiy7xnp&amp;st=jf1ez8rq&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/dcuepn1c70bxz439yziy0/Aerosmith-I-Dont-Want-to-Miss-a-Thing.mp3?rlkey=mj7q61d876g730mybo1dnh6zr&amp;st=loflj25m&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/fknqwlpzstaobred2d6vi/Aerosmith-Janies-Got-A-Gun.mp3?rlkey=93wop6ulsso0hyr3g03zvbmgu&amp;st=fpo4bada&amp;dl=1&#39;,
            &#39;https://www.dropbox.com/scl/fi/a9ztkx8sfapujjr70royf/Aerosmith-Livin-On-The-Edge.mp3?rlkey=gotil1qsc5csdtdzn91rv5gt2&amp;st=ig5ag7fg&amp;dl=1&#39;,
        ];
        
        let currentSongIndex = 0;

        function changeAudio(url) {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = url;
            audioPlayer.play();
            currentSongIndex = playlist.indexOf(url); // Set current index to the selected song
        }

        function playAll() {
            currentSongIndex = 0; // Reset to the first song
            playNext(); // Start playing the first song
        }

        function playRandom() {
            currentSongIndex = Math.floor(Math.random() * playlist.length); // Set to a random song
            playNext(); // Start playing the randomly selected song
        }

        function playNext() {
            var audioPlayer = document.getElementById(&#39;audioPlayer&#39;);
            audioPlayer.src = playlist[currentSongIndex];
            audioPlayer.play();
            
            currentSongIndex++;
            if (currentSongIndex &gt;= playlist.length) {
                currentSongIndex = 0; // Reset to the first song if we reach the end
            }

            audioPlayer.onended = playNext; // Play next song when current one ends
        }
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;














&lt;style&gt;
/* Estilos para la animación de entrada */
.image-container {
  opacity: 0;
  transform: translateY(500px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  margin: 20px 0;
  text-align: center; /* Centra horizontalmente el contenido */
}

.show {
  opacity: 1;
  transform: translateY(0);
}

.image-container img {
  position: relative;
  left: 50%;              /* Lleva la imagen al centro del contenedor */
  transform: translateX(-50%); /* Ajusta la imagen para centrarla completamente */
}

/* Estilo responsivo para pantallas pequeñas */
@media (max-width: 768px) {
  .image-container {
    transform: translateY(50px);
  }
  
  .image-container img {
    left: 50%;              /* Mantener centrado en dispositivos móviles */
    transform: translateX(-50%);
    max-width: 100%;         /* Asegura que la imagen no se desborde */
    height: auto;            /* Mantiene la proporción de la imagen */
  }
}
&lt;/style&gt;




 




&lt;/!doctype&gt;

&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 1&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwT1c8CR0Up81SsuoLOhxy-qPkxtrohUcp_CEN3-xF99hKCQ2tcYtJke6-8KuEnPfjNXsQy8qWymb6GhD56qej3hruTFjf8_CrtgX5LaPlDu5CQs7xMWIP00k0Oh-0uQIWnzJdJJdN1iViLCsN6_wqvxUQK6rB1jJkxeU0VxBfLMZ1fw/s1600/aerosmith1.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;






&lt;!------- inicio ---------&gt; 
&lt;div class=&quot;letrero&quot;&gt;
    &lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Aerosmith 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;!------- fin ---------&gt;






&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Reproductor de Audio&lt;/title&gt;
    &lt;style&gt;
        .audio-container {
            max-width: 300px; /* Ajusta el ancho máximo del contenedor */
            margin: auto; /* Centra el contenedor en la página */
            text-align: center; /* Centra el contenido dentro del contenedor */
            padding: 10px; /* Espacio interno (opcional) */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&quot;audio-container&quot;&gt;
        &lt;h2&gt;Escucha La Biografía&lt;/h2&gt;
        &lt;iframe src=&quot;https://drive.google.com/file/d/1z50gv9ffsiEGHIof2gZNeHcSDKjvJf0m/preview&quot; width=&quot;100%&quot; height=&quot;50&quot; allow=&quot;autoplay&quot;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;







&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Guns N&#39; Roses: La leyenda del rock rebelde

Guns N&#39; Roses es una banda de rock estadounidense que nació en 1985 en Los Ángeles, cuando el cantante Axl Rose (William Bill Bailey, 1962) y el guitarrista Slash (Saul Hudson, 1965) unieron fuerzas para crear algo especial. Su estilo provocador y su lema “sexo, drogas y rock and roll” no tardaron en causar revuelo, y no faltaron quienes querían censurarlos en Estados Unidos. Pero esto no detuvo a Guns N&#39; Roses, que con su mezcla de rock duro y punk conquistaron al público. Su primer gran éxito fue el álbum Appetite for Destruction (1987), que vendió ocho millones de copias solo en EE. UU. Luego, sus discos Use Your Illusion I y II (1991) y The Spaghetti Incident? (1993) también fueron un rotundo éxito.
&lt;/span&gt;&lt;/p&gt;




&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwKwNd6AF77QUOrEh-8ue-zs-lwQTHOR3-0y9rJpaboXVTt6XP8f1UMDD50T2WLXU-GHEGNtiGWXZih_Y7hNbbSP86sTE2NDsFy9Uu6lXXApPo8f_mzxCEleVfzPrNNeIEAi6aLm4QeRV-r_YEaS8zoCK3_QcP30z2qJEhufWZp1Ancg/s1600/aerosmith4.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;



&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Su primer trabajo, Live... Like a Suicide (1986), no tuvo mucho impacto, pero luego de una serie de conciertos por California, Geffen Records los fichó a finales de ese año. Poco después, la banda se unió a una gira con los legendarios Iron Maiden, aunque no pudieron completarla: Axl perdió la voz y Slash tuvo que ser internado por sus excesos con el alcohol y las drogas. Al recuperarse, Guns N&#39; Roses regresó con fuerza, acompañando a Mötley Crüe y lanzando su primer álbum de estudio, Appetite for Destruction. Con este disco y una gira intensa, se convirtieron en los reyes del rock en vivo, incluso superando a Aerosmith. En 1988, el sencillo Sweet Child o&#39; Mine se convirtió en su primer número uno, recibiendo un Grammy a la mejor canción de rock del año.
&lt;/span&gt;&lt;/p&gt;





&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGUikyQPAxMVraUUtjTf9Xi02PZEHYheUnGZS7Z5EM4IVCTutucdUyURt-UWGCE4OVsAVSq8YCYGEUh4FMjl4Cl7sjCVc-ewOWQEc7yigHJCTrde5rKXBjqNzCaumbbkjjJlScH7ld6GPiw1Kl1Xq04GQ9Cb_A1_PLKF1r1ht8gWKUQw/s1600/aerosmith2.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;




&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;Tras un frenético 1988, lanzaron G &#39;N&#39; R Lies, un disco que combinaba temas de su debut y nuevas canciones, justo cuando estaban de gira en Japón. En 1991, la banda lanzó el ambicioso proyecto Use Your Illusion, dividido en dos discos dobles (I y II), con grandes temas como Estranged, Civil War, Don&#39;t Damn Me y una versión del clásico de Bob Dylan Knockin&#39; on Heaven&#39;s Door. Aunque no fue el éxito que esperaban, dejó huella en su carrera.

Sin embargo, la vida intensa de los miembros de la banda provocó varias pausas. En 1992, Izzy Stradlin, compositor de muchos de sus temas, dejó la banda para formar su propio grupo, The Ju Ju Hounds. El último álbum de Guns N&#39; Roses en su primera etapa, The Spaghetti Incident?, fue un tributo a las canciones y bandas que marcaron su sonido. Sin embargo, el lanzamiento fue polémico, pues Geffen Records vetó una canción escrita por el infame Charles Manson.

 
&lt;/span&gt;&lt;/p&gt;


&lt;div class=&quot;image-container&quot;&gt;
  &lt;img alt=&quot;Descripción de la imagen 2&quot; height=&quot;592&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi95Y2y4Qc7JfDp9lk2yFtcyDEI5ce_bPeeMvlCSIfGNZyoOs7cu0K7QGsSCmp1ut4bIvaMCXe5Px8q5C6xJWaFi12tgypv95gOnYRovgqpTGESw-Bivu9OuiAOkXID8C3mM28SaA7hxOlIJMtsUs-Li4N6JMfW9HkyzZaOVA7VE8EwLw/s1600/aerosmith3.png&quot; width=&quot;896&quot; /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&lt;p&gt;&lt;span style=&quot;color: #F1F1F1;&quot;&gt;A mediados de los 90, Guns N&#39; Roses ya era una leyenda internacional, pero como grupo estaban cada vez más distantes. Slash comenzó a colaborar con artistas como Michael Jackson, Iggy Pop, y Lenny Kravitz, mientras que Izzy Stradlin continuó en la escena local con The Ju Ju Hounds. En 1999, Geffen Records lanzó Live Era &#39;87-93&#39;, un álbum en vivo que recopilaba sus mayores éxitos, con algunos retoques de estudio.

Ese mismo año, incluyeron la canción Oh My God en la película El final de los días (1999), lo cual reavivó los rumores sobre una posible reunión. Aunque no todos los miembros originales volvieron, Axl Rose decidió reformar la banda con nuevos integrantes. Guns N&#39; Roses regresó a los escenarios en 2001, y en 2008 lanzaron Chinese Democracy, el primer disco de su nueva etapa, apoyado por una gira con el mismo nombre.


 
&lt;/span&gt;&lt;/p&gt;



&lt;script&gt;
  const initAnimation = () =&gt; {
    const containers = document.querySelectorAll(&#39;.image-container&#39;);

    const startAnimation = (container) =&gt; {
      container.classList.add(&#39;show&#39;);
    };

    const hideAnimation = (container) =&gt; {
      container.classList.remove(&#39;show&#39;);
    };

    const checkVisibility = () =&gt; {
      containers.forEach((container) =&gt; {
        const rect = container.getBoundingClientRect();
        if (rect.top &lt; window.innerHeight &amp;&amp; rect.bottom &gt; 0) {
          startAnimation(container);
        } else {
          hideAnimation(container);
        }
      });
    };

    window.addEventListener(&#39;scroll&#39;, checkVisibility);
    checkVisibility(); // Verificar al cargar la página
  };

  window.onload = initAnimation;
&lt;/script&gt;

































































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/anglo_stereo/Aerosmith/Aerosmith.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-Aerosmith&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/anglo_stereo/Aerosmith.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/aerosmith.html</link><author>noreply@blogger.com (epifanio sambrota)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRuRgBvxfSsegLfkrNx35KhVp1cbtvHKPcPK_Sw0rgS73-K4hLnlABXGKzRb1xrxj2RR8HUO4yHlxuXTdZoo2rCWrAIie_FPHGiyct2J0snqXMdCCLkQt5_4E_rnzDN3tC0UT-0xxQteW2omy4C_QyLsOohUBkmyO-YkOU51gO7NEm-Q/s72-c/aerosmith%20logo.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4196841776940519915</guid><pubDate>Sat, 05 Jul 2025 01:34:00 +0000</pubDate><atom:updated>2025-07-04T18:34:34.850-07:00</atom:updated><title>Tesla</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Tesla&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/l2q_-xN2N54/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;l2q_-xN2N54&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/l2q_-xN2N54/0.jpg&quot; alt=&quot;Tesla - Love Song&quot;&gt;
       Tesla - Love Song
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;9vwHuCC6nP8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/9vwHuCC6nP8/0.jpg&quot; alt=&quot;Tesla - What You Give&quot;&gt;
        Tesla - What You Give
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;7m7FpzOxbkQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/7m7FpzOxbkQ/0.jpg&quot; alt=&quot;Tesla - Paradise&quot;&gt;
        Tesla - Paradise
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;avAvkdYa3qM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/avAvkdYa3qM/0.jpg&quot; alt=&quot;Tesla - Modern Day Cowboy&quot;&gt;
        Tesla - Modern Day Cowboy
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;jFgOSoKeGGQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/jFgOSoKeGGQ/0.jpg&quot; alt=&quot;Tesla - The Way It Is&quot;&gt;
        Tesla - The Way It Is
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;ZC6bEn15_UM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ZC6bEn15_UM/0.jpg&quot; alt=&quot;Tesla - What You Give&quot;&gt;
        Tesla - What You Give
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;tuzamSf6x2w&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/tuzamSf6x2w/0.jpg&quot; alt=&quot;TESLA - I Love You&quot;&gt;
        TESLA - I Love You
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;epbOHloSpZM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/epbOHloSpZM/0.jpg&quot; alt=&quot;Tesla - Signs&quot;&gt;
        Tesla - Signs
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;-2zwBRa0YhA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/-2zwBRa0YhA/0.jpg&quot; alt=&quot;Tesla - Edison´s Medicine&quot;&gt;
        Edisons Medicine
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;WAj_WlH3J6Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/WAj_WlH3J6Q/0.jpg&quot; alt=&quot;Tesla - Little Suzi&quot;&gt;
        Tesla - Little Suzi
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;ftPFhbqQusk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ftPFhbqQusk/0.jpg&quot; alt=&quot;Tesla - Need Your Lovin&quot;&gt;
        Tesla - Need Your Lovin
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;uee-aYUA0u4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/uee-aYUA0u4/0.jpg&quot; alt=&quot;Tesla - Gettin Better&quot;&gt;
        Tesla - Gettin Better
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/anglo_stereo/tesla/tesla.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-heroes_del_silencio&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/anglo_stereo/tesla.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/tesla.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4075674144763209219</guid><pubDate>Sat, 05 Jul 2025 01:33:00 +0000</pubDate><atom:updated>2025-07-04T18:33:13.039-07:00</atom:updated><title>Willie Colon</title><description>


    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Willie Colon&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/TyNe7VomtQk/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;TyNe7VomtQk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/TyNe7VomtQk/0.jpg&quot; alt=&quot;Willie Colón - Talento De Televisión&quot;&gt;
        Willie Colón - Talento De Televisión
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;pXPVxwaXtV0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/pXPVxwaXtV0/0.jpg&quot; alt=&quot;Willie Colon Idilio vivo&quot;&gt;
        Willie Colon Idilio vivo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;ufPNZFo1xp4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ufPNZFo1xp4/0.jpg&quot; alt=&quot;Soltera Willie Colón&quot;&gt;
        Soltera Willie Colón
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;FCv_OJCBN2g&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/FCv_OJCBN2g/0.jpg&quot; alt=&quot;WILLIE COLÓN DEMASIADO CORAZÓN&quot;&gt;
        WILLIE COLÓN DEMASIADO CORAZÓN
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;btU9gadVW1g&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/btU9gadVW1g/0.jpg&quot; alt=&quot;Gitana - Willie Colón&quot;&gt;
        Gitana - Willie Colón
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;qXH9cwlEw64&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qXH9cwlEw64/0.jpg&quot; alt=&quot;GUAJIRA VEN Willie Colón&quot;&gt;
        GUAJIRA VEN Willie Colón
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;OQS142OXIWo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/OQS142OXIWo/0.jpg&quot; alt=&quot;ASIA  WILLIE COLÓN&quot;&gt;
        ASIA  WILLIE COLÓN
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;mAWdxfSAFLk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mAWdxfSAFLk/0.jpg&quot; alt=&quot;WILLIE COLÓN  Corazón Guerrero&quot;&gt;
        WILLIE COLÓN  Corazón Guerrero
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;Y1BDGjPPCwg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Y1BDGjPPCwg/0.jpg&quot; alt=&quot;IDILIO WILLIE COLON LYRICS&quot;&gt;
        IDILIO WILLIE COLON LYRICS
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;e3JIWjgjBBU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/e3JIWjgjBBU/0.jpg&quot; alt=&quot;Willie Colón - Cueste Lo Que Cueste&quot;&gt;
        Willie Colón - Cueste Lo Que Cueste
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;oBblr8tNdXo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/oBblr8tNdXo/0.jpg&quot; alt=&quot;TIEMPO PA MATAR LETRA - WILLIE COLÓN&quot;&gt;
        TIEMPO PA MATAR LETRA - WILLIE COLÓN
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;Zfnznb-leYQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Zfnznb-leYQ/0.jpg&quot; alt=&quot;WILLIE COLÓN -SIN PODERTE HABLAR&quot;&gt;
        WILLIE COLÓN -SIN PODERTE HABLAR
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/willie_colon/willie_colon.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-willie_colon&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/willie_colon.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/willie-colon.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-1125408387016332442</guid><pubDate>Sat, 05 Jul 2025 01:32:00 +0000</pubDate><atom:updated>2025-07-04T18:32:45.688-07:00</atom:updated><title>Michael Jackson</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Michael Jackson&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/Zi_XLOBDo_Y/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;Zi_XLOBDo_Y&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Zi_XLOBDo_Y/0.jpg&quot; alt=&quot;Michael Jackson - Billie Jean&quot;&gt;
        Michael Jackson - Billie Jean
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;QNJL6nfu__Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/QNJL6nfu__Q/0.jpg&quot; alt=&quot;Michael Jackson - They Don’t Care About Us&quot;&gt;
        Michael Jackson - They Don’t Care About Us
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;oRdxUFDoQe0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/oRdxUFDoQe0/0.jpg&quot; alt=&quot;Michael Jackson - Beat It&quot;&gt;
        Michael Jackson - Beat It
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;sOnqjkJTMaA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/sOnqjkJTMaA/0.jpg&quot; alt=&quot;Michael Jackson - Thriller&quot;&gt;
        Michael Jackson - Thriller
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;h_D3VFfhvs4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/h_D3VFfhvs4/0.jpg&quot; alt=&quot;Michael Jackson - Smooth Criminal&quot;&gt;
        Michael Jackson - Smooth Criminal
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;LeiFF0gvqcc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/LeiFF0gvqcc/0.jpg&quot; alt=&quot;Michael Jackson - Remember The Time&quot;&gt;
        Michael Jackson - Remember The Time
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;F2AitTPI5U0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/F2AitTPI5U0/0.jpg&quot; alt=&quot;Michael Jackson - Black Or White&quot;&gt;
        Michael Jackson - Black Or White
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;dsUXAEzaC3Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/dsUXAEzaC3Q/0.jpg&quot; alt=&quot;Michael Jackson - Bad&quot;&gt;
        Michael Jackson - Bad
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;HzZ_urpj4As&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/HzZ_urpj4As/0.jpg&quot; alt=&quot;Michael Jackson - The Way You Make Me Feel&quot;&gt;
        Michael Jackson - The Way You Make Me Feel
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;XAi3VTSdTxU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/XAi3VTSdTxU/0.jpg&quot; alt=&quot;Michael Jackson - Earth Song&quot;&gt;
        Michael Jackson - Earth Song
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;yURRmWtbTbo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/yURRmWtbTbo/0.jpg&quot; alt=&quot;Michael Jackson - Don’t Stop&quot;&gt;
        Michael Jackson - Don’t Stop
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;5X-Mrc2l1d0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5X-Mrc2l1d0/0.jpg&quot; alt=&quot;Michael Jackson - Rock With You&quot;&gt;
        Michael Jackson - Rock With You
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/michael_jackson/michael_jackson.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-michael_jackson&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/michael_jackson.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/michael-jackson.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-6792249250857195291</guid><pubDate>Sat, 05 Jul 2025 01:32:00 +0000</pubDate><atom:updated>2025-07-04T18:32:22.242-07:00</atom:updated><title>Soda Stereo</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Soda Stereo&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/OX-us7PEfkc/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;OX-us7PEfkc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/OX-us7PEfkc/0.jpg&quot; alt=&quot;Soda Stereo - De Musica Ligera&quot;&gt;
        Soda Stereo - De Musica Ligera
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;T_FkEw27XJ0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/T_FkEw27XJ0/0.jpg&quot; alt=&quot;Soda Stereo - De Música Ligera&quot;&gt;
        Soda Stereo - De Música Ligera
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;vNKUDiA2YQE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/vNKUDiA2YQE/0.jpg&quot; alt=&quot;Soda Stereo - Signos (Gira Me Verás Volver)&quot;&gt;
        Soda Stereo - Signos (Gira Me Verás Volver)
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;eguctGjUNLI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/eguctGjUNLI/0.jpg&quot; alt=&quot;Soda Stereo - Prófugos&quot;&gt;
        Michael Jackson - Thriller
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;xXD_IEcZbMI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/xXD_IEcZbMI/0.jpg&quot; alt=&quot;Soda Stereo - Tratame Suavemente&quot;&gt;
        Soda Stereo - Tratame Suavemente
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;LB6_e2uA7rE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/LB6_e2uA7rE/0.jpg&quot; alt=&quot;Soda Stereo - Nada Personal&quot;&gt;
        Soda Stereo - Nada Personal
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;ixjMZeQE4mo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ixjMZeQE4mo/0.jpg&quot; alt=&quot;Soda Stereo - Cuando Pase El Temblor&quot;&gt;
        Soda Stereo - Cuando Pase El Temblor
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;ZNzYr4U7Zs8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ZNzYr4U7Zs8/0.jpg&quot; alt=&quot;Soda Stereo - Cuando Pase el Temblor&quot;&gt;
        Soda Stereo - Cuando Pase el Temblor
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;iURexk-09uE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/iURexk-09uE/0.jpg&quot; alt=&quot;Soda Stereo - Persiana Americana&quot;&gt;
        Soda Stereo - Persiana Americana
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;PzB16cBy9CA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/PzB16cBy9CA/0.jpg&quot; alt=&quot;Soda Stereo - El Rito&quot;&gt;
        Soda Stereo - El Rito
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;AVEDgT_lG60&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/AVEDgT_lG60/0.jpg&quot; alt=&quot;Soda Stereo - En la Ciudad de la Furia&quot;&gt;
        Soda Stereo - En la Ciudad de la Furia
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;UPVfQKUHTSc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UPVfQKUHTSc/0.jpg&quot; alt=&quot;Soda Stereo - Trátame Suavemente&quot;&gt;
        Soda Stereo - Trátame Suavemente
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/soda_stereo/soda_stereo.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-soda_stereo&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/soda_stereo.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/soda-stereo.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-5797314420018456606</guid><pubDate>Sat, 05 Jul 2025 01:31:00 +0000</pubDate><atom:updated>2025-07-04T18:31:58.700-07:00</atom:updated><title>Yuri</title><description>





    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Del Recuerdo &quot;Yuri&quot;&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/N904Xl1wNLY/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;N904Xl1wNLY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/N904Xl1wNLY/0.jpg&quot; alt=&quot;ESTE AMOR NO SE TOCA REMASTER&quot;&gt;
       ESTE AMOR NO SE TOCA REMASTER
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;4cceydMyzRs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/4cceydMyzRs/0.jpg&quot; alt=&quot;DEJALA&quot;&gt;
        DEJALA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;otW2Fs7egaA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/otW2Fs7egaA/0.jpg&quot; alt=&quot;DETRAS DE MI VENTANA&quot;&gt;
        DETRAS DE MI VENTANA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;2bVzCTPocYY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/2bVzCTPocYY/0.jpg&quot; alt=&quot;ESTE AMOR YA NO SE TOCA&quot;&gt;
        ESTE AMOR YA NO SE TOCA
      &lt;/li&gt;

      
      
      &lt;li data-video-id=&quot;VNZxhj8-G6c&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/VNZxhj8-G6c/0.jpg&quot; alt=&quot;DAME UN BESO&quot;&gt;
       DAME UN BESO
      &lt;/li&gt;      
      
      
      &lt;li data-video-id=&quot;jLkVTqsjE3E&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/jLkVTqsjE3E/0.jpg&quot; alt=&quot;KARMA CAMALEON&quot;&gt;
        KARMA CAMALEON
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;xKxnacG9BfM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/xKxnacG9BfM/0.jpg&quot; alt=&quot;DEJALA VIDEO HD&quot;&gt;
        DEJALA VIDEO HD
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;5GFySsR-RDA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5GFySsR-RDA/0.jpg&quot; alt=&quot;LA MALDITA PRIMAVERA&quot;&gt;
        LA MALDITA PRIMAVERA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;4ePiXRFdia4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/4ePiXRFdia4/0.jpg&quot; alt=&quot;MI PRIMER AMOR&quot;&gt;
        MI PRIMER AMOR
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;nkIfGt_Vt0c&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/nkIfGt_Vt0c/0.jpg&quot; alt=&quot;QUE TE PASA&quot;&gt;
        QUE TE PASA
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;B860qAWf9fg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/B860qAWf9fg/0.jpg&quot; alt=&quot;UN CORAZON HERIDO&quot;&gt;
        UN CORAZON HERIDO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;k5DNRLMK_8Y&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/k5DNRLMK_8Y/0.jpg&quot; alt=&quot;Y DESCUBRIR QUE TE QUIERO&quot;&gt;
        Y DESCUBRIR QUE TE QUIERO
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;8XpLN-wAyvc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8XpLN-wAyvc/0.jpg&quot; alt=&quot;YO TE AMO TE AMO&quot;&gt;
        YO TE AMO TE AMO
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/yuri/yuri.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-yuri&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/yuri.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/yuri.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-750089638258805555</guid><pubDate>Sat, 05 Jul 2025 01:31:00 +0000</pubDate><atom:updated>2025-07-04T18:31:34.024-07:00</atom:updated><title>Rafael</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Rafael&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/DWnmzagelp8/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;DWnmzagelp8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/DWnmzagelp8/0.jpg&quot; alt=&quot;BALADA TRISTE DE TROMPETA&quot;&gt;
       BALADA TRISTE DE TROMPETA
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;KBQW4Ak_BmY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/KBQW4Ak_BmY/0.jpg&quot; alt=&quot;AVE MARIA&quot;&gt;
        AVEMARIA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Y6I2fEq4k-k&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Y6I2fEq4k-k/0.jpg&quot; alt=&quot;CIERRO  MIS OJOS&quot;&gt;
        CIERRO MIS OJOS
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;GKbMrvvIvvA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/GKbMrvvIvvA/0.jpg&quot; alt=&quot;COMO YO TE AMO&quot;&gt;
        COMO YO TE AMO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;h14vpBPY9MM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/h14vpBPY9MM/0.jpg&quot; alt=&quot;ESTAR ENAMORADO&quot;&gt;
        ESTAR ENAMORADO
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;9RNEGj44ETA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/9RNEGj44ETA/0.jpg&quot; alt=&quot;YO SOY AQUEL&quot;&gt;
        YO SOY AQUEL
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;mYj08K-Q3Ro&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mYj08K-Q3Ro/0.jpg&quot; alt=&quot;MI GRAN NOCHE&quot;&gt;
        MI GRAN NOCHE
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;76GAHGRJMpw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/76GAHGRJMpw/0.jpg&quot; alt=&quot;LA LLORONA&quot;&gt;
        LA LLORONA
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;PLx3ZuvX-_8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/PLx3ZuvX-_8/0.jpg&quot; alt=&quot;DIGAN LO QUE DIGAN&quot;&gt;
        DIGAN LO QUE DIGAN
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;mU0Dpi3l1gs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mU0Dpi3l1gs/0.jpg&quot; alt=&quot;EN CARNE VIVA&quot;&gt;
        EN CARNE VIVA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;mLKRhAfqRYo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mLKRhAfqRYo/0.jpg&quot; alt=&quot;NO PUEDO ARRANCARTE DE MI&quot;&gt;
        NO PUEDO ARRANCARTE DE MI
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;w8cLVQisK14&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/w8cLVQisK14/0.jpg&quot; alt=&quot;QUE TAL TE VA SIN MI&quot;&gt;
        QUE TAL TE VA SIN MI
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/rafael/rafael.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-rafael&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/romanticas_a_la_plancha/rafael.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/rafael.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4599830879153187185</guid><pubDate>Sat, 05 Jul 2025 01:31:00 +0000</pubDate><atom:updated>2025-07-04T18:31:08.938-07:00</atom:updated><title>Jose Luis Rodriguez</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Jose Luis Rodriguez&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/0c5B6DR8ESE/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;0c5B6DR8ESE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/0c5B6DR8ESE/0.jpg&quot; alt=&quot;Voy a Perder la Cabeza por Tu Amor&quot;&gt;
       Voy a Perder la Cabeza por Tu Amor
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;FYLVjeQO9a0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/FYLVjeQO9a0/0.jpg&quot; alt=&quot;Silencio&quot;&gt;
        Silencio
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;JRFfWSHO2mQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/JRFfWSHO2mQ/0.jpg&quot; alt=&quot;Por Si Volvieras&quot;&gt;
        Por Si Volvieras
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;UilRu-4i5mw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UilRu-4i5mw/0.jpg&quot; alt=&quot;Dueño de Nada&quot;&gt;
        Dueño de Nada
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Y3QF6lf9NSA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Y3QF6lf9NSA/0.jpg&quot; alt=&quot;Un Toque de Locura&quot;&gt;
        Un Toque de Locura
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;Te51928gM1w&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Te51928gM1w/0.jpg&quot; alt=&quot;Culpable Soy Yo&quot;&gt;
        Culpable Soy Yo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;TkiyV6OzeV4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/TkiyV6OzeV4/0.jpg&quot; alt=&quot;Voy a Conquistarte&quot;&gt;
        Voy a Conquistarte
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Af-0_xgJlA4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Af-0_xgJlA4/0.jpg&quot; alt=&quot;José Luis Rodríguez - De Punta A Punta&quot;&gt;
        José Luis Rodríguez - De Punta A Punta
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;qtjax5FRS40&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qtjax5FRS40/0.jpg&quot; alt=&quot;El Amar Y El Querer&quot;&gt;
        El Amar Y El Querer
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;BbhVmMRa7-k&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/BbhVmMRa7-k/0.jpg&quot; alt=&quot;Aún quisiera correr más&quot;&gt;
        Aún quisiera correr más
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;l6kCXOERxCI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/l6kCXOERxCI/0.jpg&quot; alt=&quot;Te Conozco Desde Siempre&quot;&gt;
        Te Conozco Desde Siempre
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;2lZvIq_4rNA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/2lZvIq_4rNA/0.jpg&quot; alt=&quot;EL TIEMPO SE NOS VA&quot;&gt;
        EL TIEMPO SE NOS VA
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/jose_luis_rodriguez/jose_luis_rodriguez.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-jose_luis_rodriguez&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/jose_luis_rodriguez.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/jose-luis-rodriguez.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4035267836349994960</guid><pubDate>Sat, 05 Jul 2025 01:30:00 +0000</pubDate><atom:updated>2025-07-04T18:30:36.708-07:00</atom:updated><title>Jose Jose</title><description>


    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Jose Jose&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/CpBvjrkRKN4/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;CpBvjrkRKN4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/CpBvjrkRKN4/0.jpg&quot; alt=&quot;José José - Lo Dudo&quot;&gt;
       José José - Lo Dudo
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;1Cler6PrRbg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/1Cler6PrRbg/0.jpg&quot; alt=&quot;José José - He Renunciado a Ti&quot;&gt;
        José José - He Renunciado a Ti
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;E20G25SCAEg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/E20G25SCAEg/0.jpg&quot; alt=&quot;José José - El Triste en vivo&quot;&gt;
        José José - El Triste en vivo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;6e0XWqAeTwc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/6e0XWqAeTwc/0.jpg&quot; alt=&quot;José José - ¿Y Quién Puede Ser?&quot;&gt;
        José José - ¿Y Quién Puede Ser?
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;RzJ3QjBsqM0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/RzJ3QjBsqM0/0.jpg&quot; alt=&quot;Jose Jose - Amar y Querer&quot;&gt;
        Jose Jose - Amar y Querer
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;fmi0bdJi2vs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/fmi0bdJi2vs/0.jpg&quot; alt=&quot;José José - Amnesia&quot;&gt;
        José José - Amnesia
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;UYfCGXfAMNU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UYfCGXfAMNU/0.jpg&quot; alt=&quot;José José - Mujeriego&quot;&gt;
        José José - Mujeriego
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;WI9p-pXCS0I&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/WI9p-pXCS0I/0.jpg&quot; alt=&quot;José José - Vamos a Darnos Tiempo&quot;&gt;
        José José - Vamos a Darnos Tiempo
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;mOJTvNKGovo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mOJTvNKGovo/0.jpg&quot; alt=&quot;José José - Soy Así&quot;&gt;
        José José - Soy Así
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;pgxNkyg3hMI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/pgxNkyg3hMI/0.jpg&quot; alt=&quot;Jose Jose - Cuando Vayas Conmigo&quot;&gt;
        Jose Jose - Cuando Vayas Conmigo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;86FCW0GRRcc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/86FCW0GRRcc/0.jpg&quot; alt=&quot;José José - 40 y 20&quot;&gt;
        José José - 40 y 20
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;gAd2gU0VdJU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/gAd2gU0VdJU/0.jpg&quot; alt=&quot;José José - Desesperado&quot;&gt;
        José José - Desesperado
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/jose_jose/jose_jose.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-jose_jose&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/jose_jose.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/jose-jose.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-5258732386882869581</guid><pubDate>Sat, 05 Jul 2025 01:30:00 +0000</pubDate><atom:updated>2025-07-04T18:30:11.144-07:00</atom:updated><title>Roberto Carlos</title><description>
 &lt;!------- final ---------&gt;



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Roberto Carlos&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/wCKwTiNZQ0g/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;wCKwTiNZQ0g&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/wCKwTiNZQ0g/0.jpg&quot; alt=&quot;UN GATO EN LA OSCURIDAD&quot;&gt;
       UN GATO EN LA OSCURIDAD
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;U644P4v2GF0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/U644P4v2GF0/0.jpg&quot; alt=&quot;CAMA Y MESA&quot;&gt;
        CAMA Y MESA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;iMve1GTn9FI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/iMve1GTn9FI/0.jpg&quot; alt=&quot;cCONCAVO Y CONVEXO&quot;&gt;
        CONCAVO Y CONVEXO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;tMbMTnso_v8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/tMbMTnso_v8/0.jpg&quot; alt=&quot;AMADA AMANTE&quot;&gt;
        AMADA AMANTE
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;8o9GUCAbzBY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8o9GUCAbzBY/0.jpg&quot; alt=&quot;JESUCRISTO&quot;&gt;
        JESUCRISTO
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;ApcKHU-V-7o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ApcKHU-V-7o/0.jpg&quot; alt=&quot;DESAHOGO&quot;&gt;
        DESAHOGO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;5aBrHRWLJ14&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5aBrHRWLJ14/0.jpg&quot; alt=&quot;DETALLES&quot;&gt;
        DETALLES
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;50OkQQJoZ0o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/50OkQQJoZ0o/0.jpg&quot; alt=&quot;LADY LAURA&quot;&gt;
        LADY LAURA
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;4hltLx62dV8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/4hltLx62dV8/0.jpg&quot; alt=&quot;QUE SERA DE TI&quot;&gt;
        QUE SERA DE TI
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;852SRzVaYrY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/852SRzVaYrY/0.jpg&quot; alt=&quot;CAMIONERO&quot;&gt;
        CAMIONERO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;f1VfTiygu0U&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/f1VfTiygu0U/0.jpg&quot; alt=&quot;NO TE APARTES DE MI&quot;&gt;
        NO TE APARTES DE MI
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;xUyY0_9iuG0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/xUyY0_9iuG0/0.jpg&quot; alt=&quot;SE DIVIERTE Y YA NO PIENSA EN MI&quot;&gt;
        SE DIVIERTE Y YA NO PIENSA EN MI
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/roberto_carlos/roberto_carlos.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-roberto_carlos; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/roberto_carlos.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/roberto-carlos.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-7685304299310128590</guid><pubDate>Sat, 05 Jul 2025 01:29:00 +0000</pubDate><atom:updated>2025-07-04T18:29:44.205-07:00</atom:updated><title>Miriam Hernandez</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Miriam Hernadez&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/1ddK89KqVe8/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;1ddK89KqVe8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/1ddK89KqVe8/0.jpg&quot; alt=&quot;El Hombre Que Yo Amo&quot;&gt;
       El Hombre Que Yo Amo
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;EetAf5XJBQw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/EetAf5XJBQw/0.jpg&quot; alt=&quot;Myriam Hernández - Te Pareces Tanto a El&quot;&gt;
        Myriam Hernández - Te Pareces Tanto a El
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;GndhpWagHUQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/GndhpWagHUQ/0.jpg&quot; alt=&quot;DYANGO - CORAZON MAGICO&quot;&gt;
        DYANGO - CORAZON MAGICO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;RhrFnaYednk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/RhrFnaYednk/0.jpg&quot; alt=&quot;Dyango El Primer Beso&quot;&gt;
        Dyango El Primer Beso
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;qwDIEBV3Pro&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qwDIEBV3Pro/0.jpg&quot; alt=&quot;Dyango - Cuando quieras Donde quieras&quot;&gt;
        Dyango - Cuando quieras Donde quieras
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;hRW-8fYA3k4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/hRW-8fYA3k4/0.jpg&quot; alt=&quot;Dyango - Esa Mujer&quot;&gt;
        Dyango - Esa Mujer
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;AFiUwUwxUUQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/AFiUwUwxUUQ/0.jpg&quot; alt=&quot;DIANGO - ESTA NOCHE QUIERO BRANDI&quot;&gt;
        DIANGO - ESTA NOCHE QUIERO BRANDI
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;JhRSxGiL444&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/JhRSxGiL444/0.jpg&quot; alt=&quot;Dyango - Hay algo en ella&quot;&gt;
        Dyango - Hay algo en ella
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;EBeAbC9zySM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/EBeAbC9zySM/0.jpg&quot; alt=&quot;Dyango - Igual que a mí&quot;&gt;
        Dyango - Igual que a mí
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;UrZhtmuWw3s&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UrZhtmuWw3s/0.jpg&quot; alt=&quot;DYANGO - PODER DECIRTE QUE TE AMO&quot;&gt;
        DYANGO - PODER DECIRTE QUE TE AMO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;iKFoSIO_bhc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/iKFoSIO_bhc/0.jpg&quot; alt=&quot;Dyango - Tu Mujer&quot;&gt;
        Tu Mujer Dyango
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;8qjAABIVd70&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8qjAABIVd70/0.jpg&quot; alt=&quot;DYANGO - YO MAÑANA&quot;&gt;
        DYANGO - YO MAÑANA
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/miriam_hernandez/miriam_hernandez.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-miriam_hernandez&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/miriam_hernandez.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/miriam-hernandez.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-329188209754450769</guid><pubDate>Sat, 05 Jul 2025 01:29:00 +0000</pubDate><atom:updated>2025-07-04T18:29:12.596-07:00</atom:updated><title>Dyango </title><description>


    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Dyango&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/h4vjtcF91s0/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;h4vjtcF91s0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/h4vjtcF91s0/0.jpg&quot; alt=&quot;Dyango - A dónde vas amor&quot;&gt;
       Dyango - A dónde vas amor
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;CXaEN5vzfog&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/CXaEN5vzfog/0.jpg&quot; alt=&quot;DYANGO - ALMA CORAZON Y VIDA&quot;&gt;
        DYANGO - ALMA CORAZON Y VIDA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;GndhpWagHUQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/GndhpWagHUQ/0.jpg&quot; alt=&quot;DYANGO - CORAZON MAGICO&quot;&gt;
        DYANGO - CORAZON MAGICO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;RhrFnaYednk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/RhrFnaYednk/0.jpg&quot; alt=&quot;Dyango El Primer Beso&quot;&gt;
        Dyango El Primer Beso
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;qwDIEBV3Pro&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qwDIEBV3Pro/0.jpg&quot; alt=&quot;Dyango - Cuando quieras Donde quieras&quot;&gt;
        Dyango - Cuando quieras Donde quieras
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;hRW-8fYA3k4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/hRW-8fYA3k4/0.jpg&quot; alt=&quot;Dyango - Esa Mujer&quot;&gt;
        Dyango - Esa Mujer
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;AFiUwUwxUUQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/AFiUwUwxUUQ/0.jpg&quot; alt=&quot;DIANGO - ESTA NOCHE QUIERO BRANDI&quot;&gt;
        DIANGO - ESTA NOCHE QUIERO BRANDI
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;JhRSxGiL444&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/JhRSxGiL444/0.jpg&quot; alt=&quot;Dyango - Hay algo en ella&quot;&gt;
        Dyango - Hay algo en ella
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;EBeAbC9zySM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/EBeAbC9zySM/0.jpg&quot; alt=&quot;Dyango - Igual que a mí&quot;&gt;
        Dyango - Igual que a mí
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;UrZhtmuWw3s&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UrZhtmuWw3s/0.jpg&quot; alt=&quot;DYANGO - PODER DECIRTE QUE TE AMO&quot;&gt;
        DYANGO - PODER DECIRTE QUE TE AMO
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;iKFoSIO_bhc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/iKFoSIO_bhc/0.jpg&quot; alt=&quot;Dyango - Tu Mujer&quot;&gt;
        Tu Mujer Dyango
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;8qjAABIVd70&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8qjAABIVd70/0.jpg&quot; alt=&quot;DYANGO - YO MAÑANA&quot;&gt;
        DYANGO - YO MAÑANA
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/dyango/dyango.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-dyango&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/dyango.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/dyango.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-8354118258106285445</guid><pubDate>Sat, 05 Jul 2025 01:28:00 +0000</pubDate><atom:updated>2025-07-04T18:28:40.496-07:00</atom:updated><title>Lolita</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Lolita&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/RWhNpxqlbAA/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;yJY77JTRhYI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/yJY77JTRhYI/0.jpg&quot; alt=&quot;Lolita - Abrázame&quot;&gt;
       Lolita - Abrázame
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;C7YtGDrasD4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/C7YtGDrasD4/0.jpg&quot; alt=&quot;Lolita - Amor, Amor&quot;&gt;
        Lolita - Amor, Amor
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;EFAK7WFKNTs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/EFAK7WFKNTs/0.jpg&quot; alt=&quot;Lolita - Estúpido&quot;&gt;
        Lolita - Estúpido
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;T3IfUS6sm4o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/T3IfUS6sm4o/0.jpg&quot; alt=&quot;Lolita - Qué Será de Mi&quot;&gt;
        Lolita - Qué Será de Mi
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;18N-6r2NacE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/18N-6r2NacE/0.jpg&quot; alt=&quot;Lolita - No Renunciaré&quot;&gt;
        Lolita - No Renunciaré
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;LL1Tt8MevSk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/LL1Tt8MevSk/0.jpg&quot; alt=&quot;Lolita - Te Voy A Dejar&quot;&gt;
        Lolita - Te Voy A Dejar
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;PRPQnXy64AQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/PRPQnXy64AQ/0.jpg&quot; alt=&quot;Lolita - Lo Que Yo Daría&quot;&gt;
        Lolita - Lo Que Yo Daría
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Ohw2Agbj0_4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Ohw2Agbj0_4/0.jpg&quot; alt=&quot;LOLITA - AGUILA REAL&quot;&gt;
        LOLITA - AGUILA REAL
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;7yBI0aqNv6c&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/7yBI0aqNv6c/0.jpg&quot; alt=&quot;Cuando Llamas Tu - Lolita&quot;&gt;
        Cuando Llamas Tu - Lolita
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;IXoukd05Vm4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/IXoukd05Vm4/0.jpg&quot; alt=&quot;Lolita Quien lo va a saber&quot;&gt;
        Lolita Quien lo va a saber
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;EY6icc-Mrpk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/EY6icc-Mrpk/0.jpg&quot; alt=&quot;Lolita - Si, pero no&quot;&gt;
        Lolita - Si, pero no
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;jDVTmOrga6Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/jDVTmOrga6Q/0.jpg&quot; alt=&quot;Lolita - La noche de anoche&quot;&gt;
        Lolita - La noche de anoche
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/lolita/lolita.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-lolita&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/lolita.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/lolita.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-2195299105510496597</guid><pubDate>Sat, 05 Jul 2025 01:28:00 +0000</pubDate><atom:updated>2025-07-04T18:28:14.113-07:00</atom:updated><title>Jose Velez</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Jose Velez&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/OGjD6eXl3a0/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;OGjD6eXl3a0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/OGjD6eXl3a0/0.jpg&quot; alt=&quot;José Velez - Vino Griego - vivo&quot;&gt;
       José Velez - Vino Griego - vivo
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;sGuPDPkK71w&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/sGuPDPkK71w/0.jpg&quot; alt=&quot;José Velez - Vino Griego&quot;&gt;
        José Velez - Vino Griego
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;oSS54CxGYGw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/oSS54CxGYGw/0.jpg&quot; alt=&quot;Jose Velez A Cara O Cruz&quot;&gt;
        Jose Velez A Cara O Cruz
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;_fNH5x-Io9k&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/_fNH5x-Io9k/0.jpg&quot; alt=&quot;José Velez - Con todo y mi tristeza&quot;&gt;
        José Velez - Con todo y mi tristeza
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;UVUmu67U00I&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UVUmu67U00I/0.jpg&quot; alt=&quot;JOSE VELEZ - ES ASÍ LA VIDA - vivo&quot;&gt;
        JOSE VELEZ - ES ASÍ LA VIDA - vivo
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;CcQ9Ci8zzkI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/CcQ9Ci8zzkI/0.jpg&quot; alt=&quot;JOSE VELEZ - ES ASÍ LA VIDA&quot;&gt;
        JOSE VELEZ - ES ASÍ LA VIDA
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;rxVr6uGBxDQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/rxVr6uGBxDQ/0.jpg&quot; alt=&quot;Jose Velez - No por favor&quot;&gt;
        Jose Velez - No por favor
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;ARY2En8zeis&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ARY2En8zeis/0.jpg&quot; alt=&quot;José Vélez   Piel Romantica - vivo&quot;&gt;
        José Vélez   Piel Romantica - vivo
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;kKdTVUgXakY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/kKdTVUgXakY/0.jpg&quot; alt=&quot;José Velez - Stop y Adiós&quot;&gt;
        José Velez - Stop y Adiós
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;4yJEuanE-f0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/4yJEuanE-f0/0.jpg&quot; alt=&quot;José Velez - Tú y Yo&quot;&gt;
        José Velez - Tú y Yo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;eiA3B2LuA3E&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/eiA3B2LuA3E/0.jpg&quot; alt=&quot;José Velez - Un Año Más&quot;&gt;
        José Velez - Un Año Más
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;fTr-smrP2aw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/fTr-smrP2aw/0.jpg&quot; alt=&quot;José Velez - Ve con el&quot;&gt;
        José Velez - Ve con el
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/jose_velez/jose_velez.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-jose_velez&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/jose_velez.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/jose-velez.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-506379509593151925</guid><pubDate>Sat, 05 Jul 2025 01:27:00 +0000</pubDate><atom:updated>2025-07-04T18:27:44.462-07:00</atom:updated><title>Nino Bravo</title><description>


    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Nino Bravo&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/RZheqt_7c1A/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;RZheqt_7c1A&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/RZheqt_7c1A/0.jpg&quot; alt=&quot;Nino Bravo - America America&quot;&gt;
       Nino Bravo America America
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;qfekB6nVFKk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qfekB6nVFKk/0.jpg&quot; alt=&quot;Nino Bravo - Amanecer&quot;&gt;
        Nino Bravo - Amanecer
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;puE8poqicg4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/puE8poqicg4/0.jpg&quot; alt=&quot;Nino Bravo-  Cartas Amarillas&quot;&gt;
        Nino Bravo Cartas Amarillas
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;R2nnw-5SmX0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/R2nnw-5SmX0/0.jpg&quot; alt=&quot;Nino Bravo - Contigo Soy Feliz&quot;&gt;
        Nino Bravo   Contigo Soy Feliz
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;g6mER2szNtQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/g6mER2szNtQ/0.jpg&quot; alt=&quot;Nino Bravo - Es El Viento&quot;&gt;
        Nino Bravo Es El Viento
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;1DkLoUZ7JIA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/1DkLoUZ7JIA/0.jpg&quot; alt=&quot;Nino Bravo - Esa Sera Mi Casa&quot;&gt;
        Nino Bravo - Esa Sera Mi Casa
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Epc0qgRbvfg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Epc0qgRbvfg/0.jpg&quot; alt=&quot;Nino Bravo - Libre&quot;&gt;
        Nino Bravo - Libre
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;PrF9bBA9gjE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/PrF9bBA9gjE/0.jpg&quot; alt=&quot;Nino Bravo - Mi Gran Amor&quot;&gt;
        Nino Bravo - Mi Gran Amor
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;sk2VG3-cjS4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/sk2VG3-cjS4/0.jpg&quot; alt=&quot;Nino Bravo - Mi mundo está vacío&quot;&gt;
        Nino Bravo - Mi mundo está vacío
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;dDWiFfVw2n4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/dDWiFfVw2n4/0.jpg&quot; alt=&quot;Nino Bravo Mi Querida Mama&quot;&gt;
        Nino Bravo Mi Querida Mama
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;d65A4aD2hmg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/d65A4aD2hmg/0.jpg&quot; alt=&quot;Nino Bravo - Un Beso Y Una Flor&quot;&gt;
        Nino Bravo - Un Beso Y Una Flor
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;uO9IBQdNiMQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/uO9IBQdNiMQ/0.jpg&quot; alt=&quot;NINO BRAVO – Tu Cambiaras&quot;&gt;
        NINO BRAVO – Tu Cambiaras
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/nino_bravo/nino_bravo.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-nino_bravo&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/nino_bravo.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/nino-bravo.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-5858645737235684116</guid><pubDate>Sat, 05 Jul 2025 01:27:00 +0000</pubDate><atom:updated>2025-07-04T18:27:15.175-07:00</atom:updated><title>Jeanette</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Jeanette&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/f2bZ1O82PMc/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;f2bZ1O82PMc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/f2bZ1O82PMc/0.jpg&quot; alt=&quot;Jeanette - Comiénzame a vivir&quot;&gt;
       Jeanette - Comiénzame a vivir
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;TjUhXbGdLYo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/TjUhXbGdLYo/0.jpg&quot; alt=&quot;Jeanette - Porque te vas&quot;&gt;
        Jeanette - Porque te vas
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;PAe0gyrDSyg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/PAe0gyrDSyg/0.jpg&quot; alt=&quot;Jeanette - El muchacho de los ojos tristes&quot;&gt;
        Jeanette - El muchacho de los ojos tristes
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;6ys7i-kW-lQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/6ys7i-kW-lQ/0.jpg&quot; alt=&quot;Jeanette - Frente a frente&quot;&gt;
        Jeanette - Frente a frente
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;JuLRF7mch_I&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/JuLRF7mch_I/0.jpg&quot; alt=&quot;Jeanette - Soy rebelde&quot;&gt;
        Jeanette - Soy rebelde
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;mlg4fV1MEQ8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/mlg4fV1MEQ8/0.jpg&quot; alt=&quot;Jeanette - Corazón de poeta&quot;&gt;
        Jeanette - Corazón de poeta
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;-23gHOUBhic&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/-23gHOUBhic/0.jpg&quot; alt=&quot;Jeanette - Toda la noche oliendo a ti&quot;&gt;
        Jeanette - Toda la noche oliendo a ti
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;9LzIfdn_lis&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/9LzIfdn_lis/0.jpg&quot; alt=&quot;Jeanette - Ojos en el sol&quot;&gt;
        Jeanette - Ojos en el sol
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;ehWuLAEd-c8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ehWuLAEd-c8/0.jpg&quot; alt=&quot;Jeanette Cuando Estoy Con El&quot;&gt;
        Jeanette Cuando Estoy Con El
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;Ojf1zBudZ9Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Ojf1zBudZ9Q/0.jpg&quot; alt=&quot;Jeanette - Amiga mia&quot;&gt;
        Jeanette - Amiga mia
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;wIig2SwHzGk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/wIig2SwHzGk/0.jpg&quot; alt=&quot;Jeanette - Acabaré llorando&quot;&gt;
        Jeanette - Acabaré llorando
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;qbqnMYLb7p0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/qbqnMYLb7p0/0.jpg&quot; alt=&quot;Jeanette - Hombre&quot;&gt;
        Jeanette - Hombre
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/jeanette/jeanette.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-jeanette&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/jeanette.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/jeanette.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-103338623236807210</guid><pubDate>Sat, 05 Jul 2025 01:26:00 +0000</pubDate><atom:updated>2025-07-04T18:26:44.435-07:00</atom:updated><title>Rudy Marquez</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Rudy Marquez&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/UjyxNEZdY7o/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;UjyxNEZdY7o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/UjyxNEZdY7o/0.jpg&quot; alt=&quot;RUDY  MÁRQUEZ - EL  AMAR  Y  EL  QUERER&quot;&gt;
       RUDY  MÁRQUEZ - EL  AMAR  Y  EL  QUERER
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;Zh9rBqaiBGw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Zh9rBqaiBGw/0.jpg&quot; alt=&quot;Insoportablemente Bella - Rudy Marquez&quot;&gt;
        Insoportablemente Bella - Rudy Marquez
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;x4INUjlxURE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/x4INUjlxURE/0.jpg&quot; alt=&quot;Rudy Marquez La Noche de Tu Boda&quot;&gt;
        Rudy Marquez La Noche de Tu Boda
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;1cwWiZEpHs0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/1cwWiZEpHs0/0.jpg&quot; alt=&quot;Rudy Marquez Memorias&quot;&gt;
        Rudy Marquez Memorias
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;y_eEJoHxNv4&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/y_eEJoHxNv4/0.jpg&quot; alt=&quot;RUDY MARQUEZ Mi Razon&quot;&gt;
        RUDY MARQUEZ Mi Razon
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;irGBIetY8Dk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/irGBIetY8Dk/0.jpg&quot; alt=&quot;Rudy Marquez No Lo Puedes Negar&quot;&gt;
        Rudy Marquez No Lo Puedes Negar
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;hFDKWhsSPrA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/hFDKWhsSPrA/0.jpg&quot; alt=&quot;Qué quieres tú - Rudy Márquez&quot;&gt;
        Qué quieres tú - Rudy Márquez
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Z_DST8at9LY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Z_DST8at9LY/0.jpg&quot; alt=&quot;Rudy Marquez Sera&quot;&gt;
        Rudy Marquez Sera
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;pS8jSpAdQak&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/pS8jSpAdQak/0.jpg&quot; alt=&quot;RUDY MARQUEZ - TU ANA MARIA&quot;&gt;
        RUDY MARQUEZ - TU ANA MARIA
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;lyISjX5hYmM&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/lyISjX5hYmM/0.jpg&quot; alt=&quot;Tú y Yo (Rudy Márquez)&quot;&gt;
        Tú y Yo (Rudy Márquez)
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;roJK5KGjGlQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/roJK5KGjGlQ/0.jpg&quot; alt=&quot;Rudy Marquez Juro Por Mi Vida&quot;&gt;
        Rudy Marquez Juro Por Mi Vida
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;bXRwjG7v8hk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/bXRwjG7v8hk/0.jpg&quot; alt=&quot;Rudy Marquez Mis Años Con Ella&quot;&gt;
        Rudy Marquez Mis Años Con Ella
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/rudy_marquez/rudy_marquez.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-rudy_marquez&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/rudy_marquez.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/rudy-marquez.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-4367898803726005287</guid><pubDate>Sat, 05 Jul 2025 01:26:00 +0000</pubDate><atom:updated>2025-07-04T18:26:11.235-07:00</atom:updated><title>Franco Simone</title><description>






    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Franco Simone&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/o_TLBoLIg6o/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;o_TLBoLIg6o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/o_TLBoLIg6o/0.jpg&quot; alt=&quot;Franco Simone - Paisaje&quot;&gt;
       Franco Simone - Paisaje
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;Sr4YnMibdyI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Sr4YnMibdyI/0.jpg&quot; alt=&quot;Franco Simone Esta Noche&quot;&gt;
        Franco Simone Esta Noche
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;6IxUfNNnx7o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/6IxUfNNnx7o/0.jpg&quot; alt=&quot;Franco Simone - Gotas&quot;&gt;
        Franco Simone - Gotas
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Qt2E5i3nlQ8&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Qt2E5i3nlQ8/0.jpg&quot; alt=&quot;franco simone he nacido cantando&quot;&gt;
        franco simone he nacido cantando
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;8Yvm2nPYqGU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8Yvm2nPYqGU/0.jpg&quot; alt=&quot;Franco Simone  Magica&quot;&gt;
        Franco Simone  Magica
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;5AfKKM3KFwQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5AfKKM3KFwQ/0.jpg&quot; alt=&quot;Franco Simone  El Comico&quot;&gt;
        Franco Simone  El Comico
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Hkw76oI7aXI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Hkw76oI7aXI/0.jpg&quot; alt=&quot;Franco Simone – Mala Droga&quot;&gt;
        Franco Simone – Mala Droga
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;xBmeUp_j2xw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/xBmeUp_j2xw/0.jpg&quot; alt=&quot;Franco Simone - Respiro&quot;&gt;
        Franco Simone - Respiro
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;Jb3jcskMtXA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Jb3jcskMtXA/0.jpg&quot; alt=&quot;Franco Simone - Rio Grande&quot;&gt;
        Franco Simone - Rio Grande
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;kPLa2x2FqTQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/kPLa2x2FqTQ/0.jpg&quot; alt=&quot;Franco Simone Tu Siempre Tu&quot;&gt;
        Franco Simone Tu Siempre Tu
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;9KfsJQwJqgs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/9KfsJQwJqgs/0.jpg&quot; alt=&quot;Franco Simone - Tentaciones&quot;&gt;
        Franco Simone - Tentaciones
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;n2k3PQ5xW0U&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/n2k3PQ5xW0U/0.jpg&quot; alt=&quot;Franco Simone- Cuando&quot;&gt;
        Franco Simone- Cuando
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/rocio_durcal/rocio_durcal.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-rocio_durcal&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/rocio_durcal.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/franco-simone.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-712064639027987933</guid><pubDate>Sat, 05 Jul 2025 01:25:00 +0000</pubDate><atom:updated>2025-07-04T18:25:41.180-07:00</atom:updated><title>Rocio Durcal</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Rocio Durcal&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/eqqmEMZYmLg/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;8DE4H7bd0vs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/8DE4H7bd0vs/0.jpg&quot; alt=&quot;Rocío Dúrcal - Amor eterno&quot;&gt;
       Rocío Dúrcal - Amor eterno
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;1xlj-zAWEfg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/1xlj-zAWEfg/0.jpg&quot; alt=&quot;Rocío Dúrcal - Cómo Han Pasado los Años&quot;&gt;
        Rocío Dúrcal - Cómo Han Pasado los Años
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;XWr_fhIBeIU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/XWr_fhIBeIU/0.jpg&quot; alt=&quot;Rocío Dúrcal - Como tu mujer&quot;&gt;
        Rocío Dúrcal - Como tu mujer
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;dpxQbZsXgNw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/dpxQbZsXgNw/0.jpg&quot; alt=&quot;Rocío Dúrcal - Costumbres&quot;&gt;
        Rocío Dúrcal - Costumbres
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;TqqGDOTEfHk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/TqqGDOTEfHk/0.jpg&quot; alt=&quot;Rocío Dúrcal y Juan Gabriel - Déjame vivir&quot;&gt;
        Rocío Dúrcal y Juan Gabriel - Déjame vivir
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;iWgmU7JgVGs&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/iWgmU7JgVGs/0.jpg&quot; alt=&quot;Rocío Dúrcal - Diferentes&quot;&gt;
        Rocío Dúrcal - Diferentes
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;uKkFBBAJkyc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/uKkFBBAJkyc/0.jpg&quot; alt=&quot;Rocio Durcal frente a  frente&quot;&gt;
        Rocio Durcal frente a  frente
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;O769ldNUHmc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/O769ldNUHmc/0.jpg&quot; alt=&quot;Rocio Durcal - La Gata Bajo La Lluvia&quot;&gt;
        Rocio Durcal - La Gata Bajo La Lluvia
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;Mu0_5AM2ETY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Mu0_5AM2ETY/0.jpg&quot; alt=&quot;Rocío Dúrcal - Me gustas mucho&quot;&gt;
        Rocío Dúrcal - Me gustas mucho
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;DHNrraOg4AE&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/DHNrraOg4AE/0.jpg&quot; alt=&quot;Rocío Dúrcal - Perdóname, Olvídalo&quot;&gt;
        Rocío Dúrcal - Perdóname, Olvídalo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;utofaf4h8A8o&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/utofaf4h8A8/0.jpg&quot; alt=&quot;Rocío Dúrcal - Quédate Conmigo Esta Noche&quot;&gt;
        Rocío Dúrcal - Quédate Conmigo Esta Noche
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;oj4OjsEXjPk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/oj4OjsEXjPk/0.jpg&quot; alt=&quot;Rocío Dúrcal - Ya Te Olvide&quot;&gt;
        Rocío Dúrcal - Ya Te Olvide
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/rocio_durcal/rocio_durcal.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-rocio_durcal&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/rocio_durcal.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/rocio-durcal.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-7735996512027857639</guid><pubDate>Sat, 05 Jul 2025 01:25:00 +0000</pubDate><atom:updated>2025-07-04T18:25:06.719-07:00</atom:updated><title>Heroes Del Silencio</title><description>





 &lt;!------- final ---------&gt;



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Top Heroes Del Silencio&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/SqB4FSettTI/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;SqB4FSettTI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/SqB4FSettTI/0.jpg&quot; alt=&quot;Héroes del Silencio - Maldito duende&quot;&gt;
       Héroes del Silencio - Maldito duende
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;jnDjEHyhFpU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/jnDjEHyhFpU/0.jpg&quot; alt=&quot;Héroes del Silencio - La chispa adecuada&quot;&gt;
        Héroes del Silencio - La chispa adecuada
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;6wMMcCkRAsk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/6wMMcCkRAsk/0.jpg&quot; alt=&quot;Héroes del Silencio - Entre dos tierras&quot;&gt;
        Héroes del Silencio - Entre dos tierras
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;eeJ9ZaFiBrw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/eeJ9ZaFiBrw/0.jpg&quot; alt=&quot;Héroes del Silencio - La herida&quot;&gt;
        Héroes del Silencio - La herida
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;IyCw0DabDsk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/IyCw0DabDsk/0.jpg&quot; alt=&quot;Héroes del Silencio - La sirena varada&quot;&gt;
        Héroes del Silencio - La sirena varada
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;ic4vr9y5rNg&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ic4vr9y5rNg/0.jpg&quot; alt=&quot;Héroes del Silencio - Flor del loto&quot;&gt;
        Héroes del Silencio - Flor del loto
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;Bq_5GzVPSLY&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/Bq_5GzVPSLY/0.jpg&quot; alt=&quot;Héroes del Silencio - Con nombre de guerra&quot;&gt;
        Héroes del Silencio - Con nombre de guerra
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;n0bm3nN_I3k&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/n0bm3nN_I3k/0.jpg&quot; alt=&quot;Héroes del Silencio - Nuestros nombres&quot;&gt;
        Héroes del Silencio - Nuestros nombres
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;3wOY9Looa2Q&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/3wOY9Looa2Q/0.jpg&quot; alt=&quot;Héroes del Silencio - Avalancha&quot;&gt;
        Héroes del Silencio - Avalancha
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;slctnzJ2dzA&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/slctnzJ2dzA/0.jpg&quot; alt=&quot;Héroes del Silencio - Mar adentro&quot;&gt;
        Héroes del Silencio - Mar adentro
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;N64UGolliPw&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/N64UGolliPw/0.jpg&quot; alt=&quot;Héroes del Silencio - Iberia sumergida&quot;&gt;
        Héroes del Silencio - Iberia sumergida
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;5v-IOTeCoDI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5v-IOTeCoDI/0.jpg&quot; alt=&quot;BUNBURY &amp; CALAMARO - Apuesta por el RnR&quot;&gt;
        BUNBURY &amp; CALAMARO - Apuesta por el RnR
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/heroes_del_silencio/heroes_del_silencio.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-heroes_del_silencio&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/heroes_del_silencio.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/heroes-del-silencio.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5871327865452383864.post-1469873066413111005</guid><pubDate>Sat, 05 Jul 2025 01:24:00 +0000</pubDate><atom:updated>2025-07-04T18:24:17.152-07:00</atom:updated><title>Julio Iglesias</title><description>



    &lt;div class=&quot;contenedor&quot;&gt;
        &lt;h1 class=&quot;neon&quot;&gt;Julio Iglesias&lt;/h1&gt;
    &lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Galería de Videos&lt;/title&gt;
  &lt;style&gt;
    /* Estilos generales */
    #video-section {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 20px auto;
      width: 100%;
      max-width: 1250px;
    }

    /* Contenedor del reproductor */
    #video-container {
      width: 100%;
      height: 703px;
      position: relative;
    }

    /* Falso reproductor (miniatura) */
    #video-placeholder {
      width: 100%;
      height: 100%;
      background: url(&#39;https://img.youtube.com/vi/xkxcYXfS8Tk/0.jpg&#39;) center/cover no-repeat;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Reproductor real */
    iframe {
      display: none;
      width: 100%;
      height: 100%;
      border: none;
    }

    /* Lista de videos */
    #video-list {
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      width: 100%;
    }

    #video-list li {
      cursor: pointer;
      padding: 10px;
      background: #fff;
      border: 1px solid #ddd;
      border-radius: 5px;
      text-align: center;
      transition: background 0.3s ease, transform 0.2s ease;
    }

    #video-list li:hover {
      background: #f0f0f0;
      transform: scale(1.02);
    }

#video-list {
    width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
    max-width: 1250px; /* Aquí puedes ajustar el tamaño máximo si es necesario */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}


    /* Ajuste para pantallas pequeñas */
    @media (max-width: 768px) {
      #video-container {
        height: 360px;
      }

      iframe {
        height: 100%;
      }

      #video-list {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 10px;
      }
    }

    /* Asegurarse de que el contenedor de videos no quede pegado a los bordes */
    @media (max-width: 480px) {
      #video-container {
        height: 300px;
      }

      #video-placeholder {
        background-size: cover;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;video-section&quot;&gt;
    &lt;div id=&quot;video-container&quot;&gt;
      &lt;!-- Falso reproductor --&gt;
      &lt;div id=&quot;video-placeholder&quot;&gt;&lt;/div&gt;
      &lt;!-- Reproductor real --&gt;
      &lt;iframe 
        id=&quot;video-player&quot; 
        src=&quot;&quot; 
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; 
        referrerpolicy=&quot;strict-origin-when-cross-origin&quot; 
        allowfullscreen&gt;
      &lt;/iframe&gt;
    &lt;/div&gt;

    &lt;!-- Lista de videos --&gt;
    &lt;ul id=&quot;video-list&quot;&gt;
      &lt;li data-video-id=&quot;xkxcYXfS8Tk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/xkxcYXfS8Tk/0.jpg&quot; alt=&quot;Julio Iglesias - Me Olvide De Vivir&quot;&gt;
        Julio Iglesias - Me Olvide De Vivir
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;__bO_WXELG0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/__bO_WXELG0/0.jpg&quot; alt=&quot;Julio Iglesias - Ni Te Tengo Ni Te Olvido&quot;&gt;
        Julio Iglesias - Ni Te Tengo Ni Te Olvido
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;_cvK6-HbN4c&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/_cvK6-HbN4c/0.jpg&quot; alt=&quot;Julio Iglesias - La Gota Fría&quot;&gt;
        Julio Iglesias - La Gota Fría
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;jkue0dtOTa0&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/jkue0dtOTa0/0.jpg&quot; alt=&quot;Julio Iglesias - Con la Misma Piedra&quot;&gt;
        Julio Iglesias - Con la Misma Piedra
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;-pwLBewYEnc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/-pwLBewYEnc/0.jpg&quot; alt=&quot;Julio Iglesias - Quijote&quot;&gt;
        Julio Iglesias - Quijote
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;tkrv_err-vc&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/tkrv_err-vc/0.jpg&quot; alt=&quot;Julio Iglesias - A Veces Tu, A Veces Yo&quot;&gt;
        Julio Iglesias - A Veces Tu, A Veces Yo
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;d1mUtZNs1JQ&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/d1mUtZNs1JQ/0.jpg&quot; alt=&quot;Julio Iglesias - Que No Se Rompa La Noche&quot;&gt;
        Julio Iglesias - Que No Se Rompa La Noche
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;OZQxoIw6pnk&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/OZQxoIw6pnk/0.jpg&quot; alt=&quot;Julio Iglesias - Si Me Dejas No Vale&quot;&gt;
        Julio Iglesias - Si Me Dejas No Vale
      &lt;/li&gt;
      

      
      &lt;li data-video-id=&quot;ZcK7TN5Ydpo&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/ZcK7TN5Ydpo/0.jpg&quot; alt=&quot;Julio Iglesias - O Me Quieres O Me Dejas&quot;&gt;
        Julio Iglesias - O Me Quieres O Me Dejas
      &lt;/li&gt;
      
      
      
      &lt;li data-video-id=&quot;TICKmugTgBU&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/TICKmugTgBU/0.jpg&quot; alt=&quot;Julio Iglesias - Lo Mejor De Tu Vida&quot;&gt;
        Julio Iglesias - Lo Mejor De Tu Vida
      &lt;/li&gt;
      
      
      &lt;li data-video-id=&quot;aA0Yg192J3g&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/aA0Yg192J3g/0.jpg&quot; alt=&quot;Julio Iglesias - Soy un Truhán, Soy un Señor&quot;&gt;
        Julio Iglesias - Soy un Truhán, Soy un Señor
      &lt;/li&gt;  
      
      
      
      &lt;li data-video-id=&quot;5mqadLTSkRI&quot;&gt;
        &lt;img src=&quot;https://img.youtube.com/vi/5mqadLTSkRI/0.jpg&quot; alt=&quot;Julio Iglesias - Seguire Mi Camino&quot;&gt;
        Julio Iglesias - Seguire Mi Camino
      &lt;/li&gt;        
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const videoPlaceholder = document.getElementById(&quot;video-placeholder&quot;);
    const videoPlayer = document.getElementById(&quot;video-player&quot;);
    const videoList = document.getElementById(&quot;video-list&quot;);

    // Función para mostrar el reproductor real y cargar el video
    function loadVideo(videoId) {
      const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
      videoPlayer.src = embedUrl;

      // Mostrar el reproductor real y ocultar el falso
      videoPlaceholder.style.display = &quot;none&quot;;
      videoPlayer.style.display = &quot;block&quot;;

      // Poner el reproductor en pantalla completa
      videoPlayer.requestFullscreen();
    }

    // Evento para el falso reproductor
    videoPlaceholder.addEventListener(&quot;click&quot;, () =&gt; {
      const firstVideoId = videoList.querySelector(&quot;li&quot;).getAttribute(&quot;data-video-id&quot;);
      loadVideo(firstVideoId);
    });

    // Eventos para la lista de videos
    videoList.addEventListener(&quot;click&quot;, (event) =&gt; {
      const clickedItem = event.target;

      if (clickedItem.tagName === &quot;LI&quot; || clickedItem.tagName === &quot;IMG&quot;) {
        const videoId = clickedItem.closest(&#39;li&#39;).getAttribute(&quot;data-video-id&quot;);
        loadVideo(videoId);

        // Desplazarse hasta el reproductor de video
        document.getElementById(&quot;video-container&quot;).scrollIntoView({
          behavior: &quot;smooth&quot;,
          block: &quot;start&quot;
        });
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;



























































&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Formulario de Votación&lt;/title&gt;
  &lt;style&gt;
    /* Estilos minimalistas */
    #vote-form {
      margin: 20px auto;
      text-align: center;
      max-width: 300px;
      padding: 10px;
      border: 1px solid #ddd;
      border-radius: 5px;
      background-color: #fafafa;
    }

    #like-button {
      background-color: #007bff;
      color: #fff;
      border: none;
      padding: 8px 16px;
      margin-top: 10px;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
    }

    #like-button:hover {
      background-color: #0056b3;
    }

    #likes-count {
      margin-top: 10px;
      font-size: 16px;
      color: #333;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

  &lt;div id=&quot;vote-form&quot;&gt;
    &lt;h3&gt;Votación&lt;/h3&gt;
    &lt;div id=&quot;likes-count&quot;&gt;Cargando...&lt;/div&gt;
    &lt;button id=&quot;like-button&quot;&gt;LIKE&lt;/button&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const token = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    
    
    const filePath = &#39;/pub/radio/votaciones/underground_noise_radio/julio_iglesias/julio_iglesias.txt&#39;; // &lt;--------------------cambiar Ruta del archivo de Dropbox donde se almacenan los votos segun artista
    
    // Identificador único del artículo para controlar los votos
    // Cambia este valor por un identificador diferente para cada artículo/formulario
    const articleId = &#39;articulo-julio_iglesias&#39;; // &lt;------------------------------------------------------------------------ cambiar el ide para poder votar
    
    let likes = 0;

    // Verifica si el usuario ya votó en este artículo
    function hasVoted() {
      // Usa el ID del artículo para verificar el voto en localStorage
      return localStorage.getItem(`voted_${articleId}`) === &#39;true&#39;;
    }

    // Marca que el usuario ya votó en este artículo
    function markAsVoted() {
      // Almacena en localStorage para evitar votos duplicados en el mismo artículo
      localStorage.setItem(`voted_${articleId}`, &#39;true&#39;);
    }

    // Función para descargar el contenido del archivo desde Dropbox
    async function loadLikes() {
      try {
        const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: filePath })
          }
        });

        const text = await response.text();
        likes = parseInt(text) || 0; // Convierte el contenido del archivo a un número de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;

        // Deshabilita el botón si el usuario ya votó
        if (hasVoted()) {
          document.getElementById(&#39;like-button&#39;).disabled = true;
          document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
        }
      } catch (error) {
        console.error(&#39;Error al descargar el archivo:&#39;, error);
        document.getElementById(&#39;likes-count&#39;).textContent = &#39;Error al cargar likes&#39;;
      }
    }

    // Función para subir el contenido actualizado a Dropbox
    async function updateLikes(newLikes) {
      try {
        await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
          method: &#39;POST&#39;,
          headers: {
            &#39;Authorization&#39;: `Bearer ${token}`,
            &#39;Dropbox-API-Arg&#39;: JSON.stringify({
              path: filePath,
              mode: &#39;overwrite&#39;,
              mute: true
            }),
            &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
          },
          body: newLikes.toString() // Convierte los likes a texto para almacenar en Dropbox
        });
      } catch (error) {
        console.error(&#39;Error al subir el archivo:&#39;, error);
      }
    }

    // Evento para el botón de &quot;LIKE&quot;
    document.getElementById(&#39;like-button&#39;).addEventListener(&#39;click&#39;, async () =&gt; {
      if (!hasVoted()) { // Verifica si el usuario ya ha votado
        likes++; // Incrementa el contador de likes
        document.getElementById(&#39;likes-count&#39;).textContent = `${likes} likes`;
        await updateLikes(likes); // Actualiza los likes en Dropbox
        markAsVoted(); // Marca al usuario como que ya votó

        // Deshabilita el botón después de votar
        document.getElementById(&#39;like-button&#39;).disabled = true;
        document.getElementById(&#39;like-button&#39;).textContent = &#39;Ya has votado&#39;;
      }
    });

    // Carga los likes al iniciar la página
    loadLikes();
  &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;





























&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contador de Vistas&lt;/title&gt;
    &lt;style&gt;
        /* Estilos para el contador de vistas */
        #views-section {
            margin: 20px auto;
            text-align: center;
            max-width: 300px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #444; /* Fondo gris oscuro */
            color: #fff; /* Color de texto blanco para mejor contraste */
        }

        h3 {
            color: #fff; /* Color blanco para el texto del encabezado */
            margin: 0; /* Elimina margen para mejor alineación */
        }

        #total-views {
            font-size: 24px;
            color: #fff; /* Color blanco para el texto de vistas */
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;views-section&quot;&gt;
    &lt;h3&gt;Vistas: &lt;span id=&quot;total-views&quot;&gt;Cargando...&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;script&gt;
    const dropboxToken = &#39;yCTdyC2OKqAAAAAAAAAAR1RJqrdyts_IRCAp3-QULu_P59TfdjSVddAW4ptS-SOm&#39;;
    const dropboxFilePath = &#39;/pub/radio/vistas/underground_noise_radio/julio_iglesias.txt&#39;;   //---------------------------------------------------------------cambiar directorio y nombre segun el artista para vistas
    let viewCount = 0;

    // Función para cargar el número de vistas desde Dropbox
    async function loadViewCount() {
        try {
            const response = await fetch(&#39;https://content.dropboxapi.com/2/files/download&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({ path: dropboxFilePath })
                }
            });

            const text = await response.text();
            viewCount = parseInt(text) || 0; // Asegura que viewCount sea un número
            document.getElementById(&#39;total-views&#39;).textContent = viewCount;

            // Incrementar el contador de vistas y actualizar Dropbox
            viewCount++; // Incrementa el contador de vistas
            document.getElementById(&#39;total-views&#39;).textContent = viewCount; // Actualiza el contador en la página
            await updateViewCount(); // Subir el nuevo contador a Dropbox

        } catch (error) {
            console.error(&#39;Error al descargar el archivo:&#39;, error);
            document.getElementById(&#39;total-views&#39;).textContent = &#39;Error al cargar vistas&#39;;
        }
    }

    // Función para actualizar el número de vistas en Dropbox
    async function updateViewCount() {
        try {
            await fetch(&#39;https://content.dropboxapi.com/2/files/upload&#39;, {
                method: &#39;POST&#39;,
                headers: {
                    &#39;Authorization&#39;: `Bearer ${dropboxToken}`,
                    &#39;Dropbox-API-Arg&#39;: JSON.stringify({
                        path: dropboxFilePath,
                        mode: &#39;overwrite&#39;,
                        mute: true
                    }),
                    &#39;Content-Type&#39;: &#39;application/octet-stream&#39;
                },
                body: viewCount.toString()
            });
        } catch (error) {
            console.error(&#39;Error al subir el archivo:&#39;, error);
        }
    }

    // Cargar el número de vistas al iniciar la página
    loadViewCount();
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;






















</description><link>https://www.influenciaurbana.com/2025/07/julio-iglesias.html</link><author>noreply@blogger.com (epifanio sambrota)</author></item></channel></rss>