Clon de Spotify DESDE CERO con Astro 3, React JS, Svelte y TailwindCSS

Sdílet
Vložit
  • čas přidán 5. 07. 2024
  • En este tutorial, te guiaré a través del proceso completo de creación de un clon de Spotify. Desde la configuración inicial con Astro y la implementación de TailwindCSS para el diseño, hasta la construcción de un reproductor funcional con React y Svelte. Abordaremos desafíos, corregiremos bugs y estableceremos una conexión con una API para una experiencia completa. Además, el repositorio estará disponible para que puedas seguir cada paso. ¡Vamos a construir juntos este proyecto desde cero!
    ▶ No te pierdas más directos en: / midudev
    ▶ Repositorio: github.com/midudev/spotify-tw...
    0:00 Intro
    2:53 Crear un nuevo proyecto con Astro
    4:38 Extensión para Astro
    5:16 Limpiando ficheros
    6:30 Instalando TailwindCSS
    7:28 Creando Layout
    15:41 Creando Aside
    17:17 Obtener todos los iconos
    18:41 Creando Aside pt2
    27:53 Cargando Fuentes
    30:35 Mostrando Canciones
    39:00 Creando Main
    41:39 Creando Cards de música
    49:25 View Transition
    51:23 Creando página de las playlist
    55:43 Continuando View Transitions
    57:28 Agregando info. de la 2da. página
    01:07:19 Problemas con las Transition API
    1:07:55 Creando componente de Svelte
    1:13:16 Creando Player con componentes de React
    1:19:14 Importante con los componentes Reactjs y Sveltejs
    1:23:00 Persistencia en el Audio a Spotify
    01:29:00 Explicación del reproductor
    1:31:53 Corrigiendo detalles
    1:38:31 Creando estado global zustand
    1:40:38 Usando Store
    1:46:26 Qué musica se esta ejecutando?
    1:49:10 Arreglando animación de las View Transitions
    1:51:10 Creando EndPoiny
    1:54:15 Creando API
    2:00:00 Recuperar la información de la PlayList
    2:04:10 Reproducir y pausar música
    2:05:00 Cambiar la canción que esta escuchando
    2:07:33 Mostrando musica actual en el reproductor
    2:13:00 Slider del Volumen
    2:18:26 Cambio de icono con respecto al volumen
    2:34:00 Controles de musica
    2:52:00 Arreglando bugs
    2:55:20 Bug NaN
    2:59:03 Lista de canciones (tabla de todas las musicas)
    3:12:00 Arreglando el borde de las tablas
    3:14:00 Player GRANDE
    3:21:55 Que faltaria??
    3:23:49 Repositorio
  • Věda a technologie

Komentáře • 107

  • @DAVIDIL81
    @DAVIDIL81 Před 7 měsíci +83

    Estaba esperando este video más que un crío una PlayStation... ya tengo para toda la semana... GRACIAS ERES UN CRACK!!! (egoístamente te digo: no aceptes ofertas millonarias porque ese día nos quedaremos sin tus videos)

  • @KingProzak
    @KingProzak Před 3 měsíci +10

    En menos de 4 horas todo lo que aprendí no tiene precio. Todo mi agradecimiento midu ❤

  • @hernanfelipediaz566
    @hernanfelipediaz566 Před 7 měsíci +7

    Que buen video, se aprende mucho acá. En serio da un contexto muy completo del flujo de trabajo con Astro además de cómo conseguir ciertas cosas que solemos hacer en SPAs

  • @GaloPapah
    @GaloPapah Před 4 měsíci +5

    Me encanta en el 2:33:30 cómo el mismo chat le arregla un bug, el tema de que no solo enseñas a la gente que te ve, si no que en verdad es una comunidad construyendo algo.

  • @elliotgaramendi
    @elliotgaramendi Před 7 měsíci +9

    No sabes cuánto lo he esperado! Lo comentaste tiempo atrás y al fin llego. Ando muy animado de aprender Astro. Gracias!!!

  • @kenetacuna9330
    @kenetacuna9330 Před 7 měsíci

    Quiero más astro. Está genial. Gracias por tu esfuerzo, se aprende mucho.

  • @andresfont4651
    @andresfont4651 Před 7 měsíci +1

    Llevaba tiempo esperándolo. Muchas gracias por compartir tan valioso contenido.

  • @GabrielPozo
    @GabrielPozo Před 7 měsíci +3

    Increible la cantidad de detalles que explicas en este video 👏👏👏👏

  • @grabbyel
    @grabbyel Před 4 měsíci +1

    Tus vídeos son droja dura Midu. La labor que haces por el mundo de la programación es absolutamente inestimable. Increíble que expliques las cosas de forma que parece fácil, hasta el punto de sentirme tonto por no saberlo. Mil gracias mister!!!

  • @josuechavez7683
    @josuechavez7683 Před 7 měsíci

    Que grande Midu, me encanta ver hacer este tipo de cosas, nunca pares maestro

  • @leosombra8708
    @leosombra8708 Před 6 měsíci +9

    Estuve probando hacerlo responsive, (Soy primeriso en talwind y en astro), muy lindo proyecto, lo probe en el celular y la música se reproduce en segundo plano muy bueno. A la hora de aplicar estilos es talwind me da un poco de problemas el responsive en algunos dispositivos al usar el 100vw no funciona como deberia, pero algo debo estar pasando por alto, el View-transition lo probe en diferentes dispositivos y en algunos celulares si los cambios de estilos son muchos, se demora mas de la cuenta en realizarse. Gracias por el excelente contenido, seguire aprendiendo. Lo que mas me gusto fue la persistencia del reproductor saludos.

  • @jjedwar17
    @jjedwar17 Před 7 měsíci

    Me ayudas con la info, muchas gracias por todos los aportes que das a la comunidad sos un crack.

  • @LocalGhost_8080
    @LocalGhost_8080 Před 7 měsíci

    Ufff lo estabamos esperando creo que todos!

  • @paulpwo
    @paulpwo Před 7 měsíci

    Que crack! Máster excelente, muchas gracias!

  • @hernanfelipediaz566
    @hernanfelipediaz566 Před 7 měsíci +5

    Quiero decir que he notado que hay una parte donde el audio se escucha como si tuviera pésima calidad, pero es porque tuvieron que editar el audio para limpiar el sonido de fondo. Tal vez fue por eso que demoraron en subir el video, Valió la pena, buen trabajo, reconozco y noto el trabajo 🙌🏽

  • @axvevansterk2264
    @axvevansterk2264 Před měsícem +3

    Llevo 1h rayado porque no me hacia hover sobre el icono de la misma manera que sobre el texto, y era por el fill="currentColor". Al parecer en los archivos de los svg que ha subido midu a GitHub si aparece. Saludos

  • @alejandroramos9949
    @alejandroramos9949 Před 7 měsíci +3

    No entiendo mucho lo que haces porque estoy arrancando pero haces tan ameno que esta bueno

  • @nvrsobrio
    @nvrsobrio Před 7 měsíci

    Saludos midu desde la tgx gang 💪🏻 y muy bien vídeo

  • @TheAlexis0070
    @TheAlexis0070 Před 7 měsíci

    Tremendo proyecto!

  • @Avispanalgonsota
    @Avispanalgonsota Před 6 měsíci

    Muy bueno, lo termine en 5 dias pero lo logre!

  • @madcativ
    @madcativ Před 4 měsíci +1

    Gracias por el tuto!, muy bien explicado!. Jejeje en 21:57 parece que gruñe un oso XD

  • @armandopena5508
    @armandopena5508 Před 7 měsíci +1

    Hola midu, por fin vas a hacer el tutorial de hacer un blog con astro? llevo mucho esperandolo. Tus videos son geniales como siempre!

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt Před 7 měsíci +1

    Lo esperaba, gracias

  • @user-rw6su6vd7u
    @user-rw6su6vd7u Před 6 měsíci +1

    Eres el crack de los cracks... pero no paro de reir con el TOÑO EL AMABLE....

  • @victorgarrido6346
    @victorgarrido6346 Před 6 měsíci

    Menuda clase magistral! Está pa lamerlo

  • @OzcarCalle
    @OzcarCalle Před 7 měsíci

    Lo máximo 😎

  • @diegoalejandrotororeyes5895
    @diegoalejandrotororeyes5895 Před 7 měsíci +2

    ¿¿Vas a continuar este proyecto ?? esta muy bueno, quede con las ganas de ver los colores del fondo, los aplique a mi manera mientras, pero de seguro puede mejorar

  • @humbertovlopez8643
    @humbertovlopez8643 Před 7 měsíci

    con svelte, excelente

  • @flobberant
    @flobberant Před 7 měsíci +2

    27:18 otra manera es fijarse la pestaña 'network' de las dev tools y ver la peticion al recurso de las fonts, y ahi te da link directo y todo xd

  • @Maikolgames
    @Maikolgames Před 7 měsíci +1

    Quiero y necesito una Parte 2 de esto

  • @luisarrieta1501
    @luisarrieta1501 Před 7 měsíci

    Midu, ¡está genial!, una pregunta, ¿Es posible usar el linter con standard para Astro? no he podido con la documentación

  • @juanavlia9776
    @juanavlia9776 Před 2 měsíci

    3:05:26 Impresionante, no me funcionaba por que estaba usando find() en vez de filter().... 1 hora buscando el error :D

  • @mariorous
    @mariorous Před 7 měsíci +1

    Que app utilizas para hacer las selecciones en la pantalla cuando explicas algo?

  • @marcosdanielgonzalezgimene5273
    @marcosdanielgonzalezgimene5273 Před 7 měsíci +1

    Hola midu, llegarás a hacer algún curso de Vue o algún "clon" hecho con Vue?, gracias. Saludos!

  • @zbishop_1
    @zbishop_1 Před 7 měsíci +2

    TUVE UN PROBLEMA. Estuve siguiendo todos tus pasos y cuando llego el minuto 22:12 por alguna razón los íconos no heredaban ni el color ni el hover. Por lo que me rompí la cabeza 2horas entre todas las IA's y mucho stack overflow, para que al final por azares del destino coloqué en el SideMenuItem junto con el text-zinc, la propiedad de fill y hover:fill . Funcionó de maravilla pero no entiendo el porqué no hereda inicialmente. Si alguien pudiera Darme una explicación lo agradecería. Muy buen video, gracias por enseñarnos tanto.

    • @brandon21997
      @brandon21997 Před 2 měsíci +1

      gracias compañero, justo llevo un buen rato con el mismo problema XD

  • @Rodo_
    @Rodo_ Před 9 dny

    Midulevi, si encuentras maravilloso lo que muestras, cuando pondrás a prueba GeneXus? Y más aún si lo complementas con work with plus?

  • @diegoulloao
    @diegoulloao Před 7 měsíci +2

    Tu compadre el que se apellida Silva -> 2:30:34

  • @davidrivas6625
    @davidrivas6625 Před 7 měsíci +1

    Siuu, gracias

  • @felipedev_
    @felipedev_ Před 7 měsíci +4

    Midu que buen ejercicio!, muchas gracias por compartir. Quería preguntarte o preguntarle a cualquiera si saben como se llama la herramientica con la que el mide los tamaños de los elementos en las paginas web. Saludos!

    • @cesaralo2111
      @cesaralo2111 Před 5 měsíci

      Hola bro supiste como se llamaba la herramienta

  • @juliorodriguez2853
    @juliorodriguez2853 Před 7 měsíci

    Al tener componentes de React y Svelt se pueden hacer fetching de datos por medio de estos?

  • @alejandroramos9949
    @alejandroramos9949 Před 7 měsíci

    Te amo

  • @LuisJimenez-uh1zx
    @LuisJimenez-uh1zx Před 7 měsíci

    Midu, pero el output en server crea todo JS, esto ko sería contraproducente? Ya que no genera todo con js?

  • @Kollor
    @Kollor Před 7 měsíci

    Cual es la diferencia de Zustand con Nanostores (La alternativa que aparece en las docs de astro)?

  • @FabianD1991
    @FabianD1991 Před 7 měsíci

    Svelte ❤

  • @paulo_pana3371
    @paulo_pana3371 Před 6 měsíci

    donde puedo ver la continuación del video o lo que falta agregar , esta en otra plataforma ?

  • @juansebastian1186
    @juansebastian1186 Před 7 měsíci

    Hola soy nuevo, apenas ando aprendiendo y quisiera saber si estás usando vs code modificado de apariencia o algún otro editor de código.

  • @mikelsalvadorgarcia5034
    @mikelsalvadorgarcia5034 Před 7 měsíci +1

    Socorroo!!! No me funciona la importación de ViewTransitions de astro:transitions, me pone que no se encuentra el módulo.

  • @ernestop74
    @ernestop74 Před 7 měsíci

    Hola amigos como andan, una pregunta, habría alguna ventaja si se integra daisyUI a tailwindcss?

  • @diegoulloao
    @diegoulloao Před 7 měsíci

    cómo se pueden agregar absolute paths imports como lo hace next.js?

  • @Elbaulforex
    @Elbaulforex Před 7 měsíci

    Seria excelente hacerlo solo con nextjs o si es posible con solo astro

  • @davidsepulveda4325
    @davidsepulveda4325 Před 7 měsíci

    Queremos la parte 2

  • @sistana
    @sistana Před 7 měsíci +1

    Hay algo que no entiendo. Por qué usar componentes de react, svelte, etc. Desde mi perspectiva, es válido si tienen cierta complejidad y si ya los tengo hechos con alguno de estos frameworks, pero sino, ¿no es mejor hacerlos con el propio Astro?. De antemano mil gracias por tu video que esta excelente.

    • @samu350
      @samu350 Před 6 měsíci +1

      Lo usarías para las partes interactivas del site, es mejor manejar esos detalles con un framework que usar vanilla TS/JS.

    • @sistana
      @sistana Před 6 měsíci

      Completamente claro, mil gracias!! @@samu350

  • @JoseWaldier
    @JoseWaldier Před 7 měsíci

    Bun + Vite 🤯

  • @sntlln93
    @sntlln93 Před 2 měsíci

    Pensé que se me había cortado la luz 01:14:00 🤣

  • @jdsanchez1993
    @jdsanchez1993 Před 7 měsíci

    como hacer para que con estas nuevas tecnologias en navegadores antiguos no pete?, y que se pueda lograr buena funcionalidad independiente del navegador

  • @alexboscan6909
    @alexboscan6909 Před měsícem

    midu con que mides la pantalla he estado buscando y no lo consigo

  • @carci2203
    @carci2203 Před 25 dny

    pregunta basica pero soy nuevo. cuando en las class le da por
    ejemplo margin y basicamente css que tipo de libreria esta usando??

    • @DanKayser
      @DanKayser Před 10 dny

      No he entendido muy bien del todo tu pregunta pero creo que te refieres a las clases que esta utilizando para estilar los elementos.
      Si es eso, midu en este proyecto esta utilizando tailwind. En resumidas cuentas en tailwind estan definidas todas esas clases que midu pone. A principios del vídeo explica como instalarla en el proyecto.

  • @matic7188
    @matic7188 Před 7 měsíci +1

    siuuu

  • @raulman0852
    @raulman0852 Před 6 měsíci

    que buen video, una pregunta. Que terminal usa??

    • @victorgarrido6346
      @victorgarrido6346 Před 6 měsíci

      Es Warp, está para macos, no se si para Windows o linux

  • @dracogamesoficial
    @dracogamesoficial Před 7 měsíci

    cuando entras a una playlist sale 3h aproximadamente en todas

  • @scherpabloDev
    @scherpabloDev Před 5 měsíci

    Excelente video Midu.. Muchas gracias por el aporte. Alguien sabe porque no me deja inspeccionar la página de spotify?? Puede ser que este bloqueado eso por parte de la empresa??

  • @heymergg
    @heymergg Před 27 dny

    El view transitions solo es de astro?

  • @user-mc7di7xn8d
    @user-mc7di7xn8d Před 18 dny

    3 hora madre mia

  • @Miscafer
    @Miscafer Před 2 měsíci

    Hola gente, por si alguna tiene error con el tema del audio usando useRef (que suene el reproductor), aquí les paso una alternativa solo reemplazando lo de adentro del handleClick:
    const handleClick = () => {
    const audio = new Audio('/music/1/01.mp3');
    if (isPlaying) {
    audio.pause();
    } else {
    audio.play();
    }
    setIsPlaying(!isPlaying);
    }
    de resto lo dejan igual y eliminan si algo la etiqueta audio del html y el audioRef🤘🏻

  • @franklinrodriguez5427
    @franklinrodriguez5427 Před 6 měsíci

    Me da curiosidad como hacer lo del color de background

  • @nospoiler1403
    @nospoiler1403 Před 29 dny

    Hermano cuando uno dedicado a como hacer portales o plataformas de cursos online (esos donde colocan video) tipo hotmart , udemy.. etc.

  • @SquadronYT
    @SquadronYT Před 7 měsíci +1

    El GRAN problema de BUN es que no funciona nativamente en windows, osea, lo mismo que nada...

  • @hernanarica6389
    @hernanarica6389 Před 7 měsíci

    Por que lo hiciste con astro? En su documentación dicen que no recomiendan astro para apps

  • @yari3061
    @yari3061 Před 6 měsíci +1

    Para desabilitar la barra de astro teclea en la consola "npx astro preferences disable devToolbar" en caso de usar npm como administrador de paquetes

  • @josepazmino842
    @josepazmino842 Před 6 měsíci

    ¿Qué herramienta utiliza para ver los pixeles?

    • @pepito7773
      @pepito7773 Před 5 měsíci

      Creo que es propio de Mac

  • @frangomez2747
    @frangomez2747 Před 7 měsíci

    Muy mal Midu, escuchando música de mi amigo Rafa Pons y no escuchando mi música ... en fin ... deberías echarle una escucha, que está en Spotify!

    • @midulive
      @midulive  Před 7 měsíci +1

      Preséntame a Rafa Pons y escucho tu música 🤣

  • @LKPablo678
    @LKPablo678 Před 2 měsíci

    Es posible que falle a la hora de instalar las dependencias? Esque me da estos errores si sigo tus pasos al principio: ▲ error Dependencies failed to install, please run npm install to install them manually after setup. -------- Y como soy un poco nuevo no se que dependencias me tengo que instalar.

    • @DanKayser
      @DanKayser Před 10 dny

      ¿Qué pasos has realizado al comenzar el proyecto?

  • @tomivm
    @tomivm Před 6 měsíci +1

    Tremendo video. Que lastima que transition persist no funcione en mozilla.

  • @didierlugo7892
    @didierlugo7892 Před 6 měsíci +2

    a mi no me cambia de color los iconos por que sera

    • @TheAlexis0070
      @TheAlexis0070 Před 6 měsíci

      A mi tampoco me sirve, pero en otro comentario un chico lo pudo solucionar. Agrega la clase "fill-current" en el link del componente SideMenuItem

    • @didierlugo7892
      @didierlugo7892 Před 6 měsíci

      @@TheAlexis0070 sigue sin funcionar no que que hago mal jajajaj

    • @TheAlexis0070
      @TheAlexis0070 Před 6 měsíci

      @@didierlugo7892 En los iconos SVG, agrega la propiedad fill="currentColor", intenta de esa manera. Por ejemplo el icon Time.astro lo tengo así:
      ...

  • @luisberoiza227
    @luisberoiza227 Před 6 měsíci

    tengo dudas con respecto a este codigo
    #app {
    display: grid;
    grid-template-areas:
    "aside main main"
    "player player player";
    grid-template-columns: 350px 1fr;
    grid-template-rows: 1fr auto;
    }
    aqui se defineron 3 columnas
    grid-template-areas:
    "aside main main"
    "player player player"
    pero solo se le esta definiendo el tamaño a dos
    grid-template-columns: 350px 1fr;
    por qué no hay error?

    • @GaloPapah
      @GaloPapah Před 4 měsíci +1

      Yo entiendo que, como son dos main se entiende que es un mismo componente que usa dos columnas, por eso el ancho es en px en el aside, pero en el main le pide ocupar el ancho restante.

    • @luisberoiza227
      @luisberoiza227 Před 4 měsíci

      @@GaloPapah yo hubiese puesto
      grid-template-areas:
      "aside main"
      "player player"

  • @FrancoAguileradonillan

    5:04 le salio el argentino de adentro

  •  Před 6 měsíci +1

    Ahora con Vue 😂

  • @erickmunoz1355
    @erickmunoz1355 Před 3 měsíci +1

    Cómo es que cambia tan rápido entre ventanas?

  • @miguelsirna
    @miguelsirna Před 7 měsíci

    falta mucho aun

  • @ammarali8432
    @ammarali8432 Před 7 měsíci

    primero

  • @VieraMaster
    @VieraMaster Před 7 měsíci +2

    hijo de tu madre das miedo creando un clon de spotify en 3 horas y media madre mía

  • @Viiper_Oficial
    @Viiper_Oficial Před měsícem

    Name de la app

  • @kevjimenez9809
    @kevjimenez9809 Před 2 měsíci

    el buscador :c chmr

  • @snithfferx
    @snithfferx Před 6 měsíci

    Ya te ves como chat gpt.
    A la empresa le toma varios empleados y horas de programacion y a midu le toma 3 horas.

  • @nahuellescano
    @nahuellescano Před 7 měsíci

    Hice algo más fácil, cloné tu repo y me robé tu carpeta xD

  • @allsunday1485
    @allsunday1485 Před 7 měsíci

    Por que usas img en lugar del componente Image de Astro que optimiza imagenes?