{"id":20590309,"url":"https://github.com/sebastianwd/elevenfm","last_synced_at":"2026-02-09T07:34:06.061Z","repository":{"id":198810993,"uuid":"701577878","full_name":"sebastianwd/elevenfm","owner":"sebastianwd","description":"Listen to music, browse artists, transfer from YouTube, Spotify and SoundCloud. Free and without installing anything https://elevenfm.com","archived":false,"fork":false,"pushed_at":"2024-12-21T02:40:48.000Z","size":8005,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T10:47:21.874Z","etag":null,"topics":["graphql","music","music-player","spotify","turso","web","youtube"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebastianwd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-07T00:56:25.000Z","updated_at":"2025-01-10T01:58:43.000Z","dependencies_parsed_at":"2023-10-27T15:36:52.374Z","dependency_job_id":"cb86c9ed-fbaa-4961-a785-02360e8a6f10","html_url":"https://github.com/sebastianwd/elevenfm","commit_stats":null,"previous_names":["sebastianwd/elevenfm"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwd%2Felevenfm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwd%2Felevenfm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwd%2Felevenfm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwd%2Felevenfm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastianwd","download_url":"https://codeload.github.com/sebastianwd/elevenfm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248970469,"owners_count":21191438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphql","music","music-player","spotify","turso","web","youtube"],"created_at":"2024-11-16T07:35:10.431Z","updated_at":"2026-02-09T07:34:05.027Z","avatar_url":"https://github.com/sebastianwd.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ElevenFM\n\nA music streaming webapp that uses YouTube to get the audio and video. The artist and album data is provided by Last.fm and TheAudioDB APIs.\n\n## Tech Stack\n\n- [Next.js](https://nextjs.org/)\n- [Apollo Server](https://www.apollographql.com/docs/apollo-server/) with [TypeGraphQL](https://typegraphql.com/)\n- [Tanstack Query](https://tanstack.com/query/) for communication with the GraphQL server\n- [Auth.js](https://authjs.dev/)\n- [TailwindCSS](https://tailwindcss.com/)\n- [Drizzle ORM](https://orm.drizzle.team/)\n- [Turso](https://turso.tech/) for SQLite database\n- [DndKit](https://dndkit.com/) for sorting and drag and drop\n\n![Main page screenshot](resources/image.png)\n\n## Features\n\n- **Search** for artists.\n- View artist details and discography.\n- **Play** albums and tracks.\n- Autoplay artist's tracks.\n- Add tracks to **queue**.\n- View **lyrics**.\n- Randomize the queue.\n- Manage playlists.\n- **Import** playlists from Spotify, YouTube and SoundCloud. (100 max at a time)\n- Simple account creation with no email required.\n- Fully responsive design.\n\n  | Add songs to your playlists by dragging and dropping: | Reorder tracks in your playlists:          |\n  | ----------------------------------------------------- | ------------------------------------------ |\n  | ![drag to playlist](resources/dd.gif)                 | ![reorder playlist](resources/reorder.gif) |\n\n## Installation\n\nClone the repository and run `pnpm install` to install the dependencies. Then run `pnpm run db:migrate` to create the database, on development it will create a local SQLite database file, on production it receives a Turso connection URL and auth token as environment variables.\nFinally `pnpm run dev` to start the development server.\n\n## Environment variables\n\n- `LASTFM_API_KEY` - Last.fm API key\n- `AUDIODB_API_KEY` - TheAudioDB API key\n- `GENIUS_ACCESS_TOKEN` - Genius API access token for lyrics\n- `NEXT_PUBLIC_INVIDIOUS_URLS` - Invidious instances to get YouTube video embeds\n- `NEXT_PUBLIC_SITE_URL` - Site URL for CORS\n- `TURSO_CONNECTION_URL` and `TURSO_AUTH_TOKEN` - [Turso](https://docs.turso.tech/sdk/ts/quickstart) variables\n- `UPSTASH_REDIS_URL` and `UPSTASH_REDIS_TOKEN` - [Upstash](https://upstash.com/) Redis variables for sessions\n\n### NextAuth variables\n\n- `NEXTAUTH_URL` - hostname + `/api/auth`\n- `AUTH_SECRET`\n- `AUTH_GITHUB_ID`\n- `AUTH_GITHUB_SECRET`\n\n## Other commands\n\n- `pnpm run gen` - Generate GraphQL types\n- `pnpm run build` - Build the app for production\n- `pnpm run update` - Run npm-check-updates and update dependencies\n\n## Recommended VS Code extensions\n\n- [Apollo GraphQL](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) for GraphQL autocomplete\n  and typecheck\n\n## Motivation\n\nMany songs I like were not available on Spotify and some never got lyrics, some were only available on SoundCloud or YouTube, and I don't like Youtube Music interface and ads. Also I didn't want to bother with managing or self-hosting my own music library. So I decided to make my own music streaming platform.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianwd%2Felevenfm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastianwd%2Felevenfm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianwd%2Felevenfm/lists"}