Skip to content

Suydev/Spot-Professional

Repository files navigation

SpotD — Spotify & YouTube Downloader

⬇️ Download Latest APK

Latest Release

➡ Click here to download the latest SpotD APK

Install: Settings → Apps → Special app access → Install unknown apps → allow your browser → open APK → Install


Overview

A professional local Spotify playlist + YouTube video downloader with a beautiful dark UI. No API keys, no login, no Premium required. Scrapes Spotify's public embed pages for track metadata, then downloads via yt-dlp. Built by Suyash Prabhu.

Stack

  • Monorepo tool: pnpm workspaces
  • Node.js version: 24
  • Package manager: pnpm
  • TypeScript version: 5.9
  • API framework: Express 5
  • Frontend: React + Vite (wouter, TanStack Query, shadcn/ui, Tailwind)
  • Database: PostgreSQL + Drizzle ORM
  • Validation: Zod (zod/v4), drizzle-zod
  • API codegen: Orval (from OpenAPI spec)
  • Build: esbuild (CJS bundle)
  • Downloader: yt-dlp (installed at .pythonlibs/bin/yt-dlp)
  • ZIP creation: archiver

Artifacts

  • artifacts/spotd — React + Vite frontend (preview at /)
  • artifacts/api-server — Express API server (prefix /api)
  • artifacts/spotd-mobile — Expo React Native mobile app (preview at /mobile/)

Key Features

  • Spotify playlist/album downloader (scrapes public embed, no API key)
  • YouTube video downloader (360p–1080p)
  • Quality selection: MP3 128/192/320 kbps, FLAC; video 360p–1080p
  • Real-time per-track progress via polling (1.5s interval)
  • Batch downloads zipped automatically
  • Download history persisted to PostgreSQL
  • Settings page (quality, chunk size, max songs, embed metadata)
  • ZIP file served via /api/downloads/:id/file
  • Auto-expiry: ZIPs expire 1hr after completion

Key Files

  • artifacts/api-server/src/lib/spotify.ts — Spotify embed scraper
  • artifacts/api-server/src/lib/ytdlp.ts — yt-dlp subprocess wrapper
  • artifacts/api-server/src/lib/downloadManager.ts — Download session state + DB
  • artifacts/api-server/src/routes/downloads.ts — Download CRUD routes
  • artifacts/api-server/src/routes/settings.ts — Settings routes
  • lib/api-spec/openapi.yaml — OpenAPI contract
  • lib/db/src/schema/downloads.ts — DB schema (downloads + settings tables)

Key Commands

  • pnpm run typecheck — full typecheck across all packages
  • pnpm run build — typecheck + build all packages
  • pnpm --filter @workspace/api-spec run codegen — regenerate API hooks and Zod schemas
  • pnpm --filter @workspace/db run push — push DB schema changes (dev only)

yt-dlp Location

Installed at: .pythonlibs/bin/yt-dlp (Python 3.12, version 2026.03.17) ffmpeg at: /nix/store/zpa9hwqagqkkagh1ky21l6xf41mfq933-replit-runtime-path/bin