Musify

{data.greeting}

Sube lo tuyo, descubre lo nuevo y escúchalo todo en un solo sitio.

{#if spotlight} {/if}
{#await data.listeningStats then stats}
{stats.tracksThisWeek}
Canciones nuevas escuchadas esta semana
{fmtDurationLong(Number(stats.secondsThisWeek))}
Tiempo de escucha esta semana
{stats.streakDays}
Días consecutivos escuchando
{/await}
{#if continueItems.length > 0}
{#each continueItems as item, i (item.id)} {@const isCurrent = player.current.id === item.id}
openContextMenu(e, targetForQueueItem(item))} > playContinue(i)} />
{/each}
{:else} {#snippet actions()} {/snippet} {/if}
{#if spotlight}

Playlist destacada

{spotlight.name}

{spotlightMeta}

{spotlight.description || 'Tu colección, siempre a mano.'}

{#each spotlightRows as { target, seconds }, i (targetId(target))}
playSpotlightTrack(i)} onkeydown={(e) => { if (e.key !== 'Enter' && e.key !== ' ') return; e.preventDefault(); playSpotlightTrack(i); }} class="flex items-center gap-3 rounded-[10px] p-2 text-left transition-colors hover:bg-hover {isTargetCurrent( target ) ? 'bg-accent-tint' : ''}" > {i + 1}
{targetTitle(target)}
{fmtTime(seconds)}
{:else}

Esta playlist todavía no tiene canciones.

{/each}
{/if}
{#if mixes.length > 0}
{#each mixes as mix, i (mix.id)} {/each}
{:else} {/if}
{#if popularTargets.length > 0}
{#each popularTargets as target, i (targetId(target))} {@const isCurrent = isTargetCurrent(target)}
openContextMenu(e, target)} > {#if isCurrent} {:else} {i + 1} {/if}
playPopular(i)} />
{/each}
{:else} {#snippet actions()} {/snippet} {/if}
{#snippet actions()} {#if data.playlistsHasMore} Ver todas {/if} {/snippet} {#if playlists.length > 0}
{#each playlists as playlist, i (playlist.id)}
{playlist.name}
{#if playlist.description}
{playlist.description}
{/if}
{/each}
{:else} {#snippet actions()} {/snippet} {/if}
{#if contextMenu} (contextMenu = null)} onAddToQueue={addToQueue} /> {/if}