Code Monkey home page Code Monkey logo

beatbump's Introduction

Beatbump

A privacy-respecting alternative frontend for YouTube Music. Built with SvelteKit, official instance hosted with Cloudflare Workers.

NOTE: Beatbump is going through a major rewrite, so errors, bugs, and other problems may happen at random.

License: AGPLv3 Awesome Humane Tech

Why Beatbump?

Beatbump is a fully-featured music listening experience, while helping to ease your privacy concerns associated with other platforms.

Some of Beatbump's features includes:

  • Automix for continued listening
  • No ads
  • Background play on mobile devices*
  • Search for artists, playlists, songs, and albums
    • Note that all playback is audio only (for now)
  • Local playlist management
    • Stored in-browser with IndexedDB
    • Can save songs individually under 'Favorites'
    • Peer-to-Peer data synchronization (using WebRTC)
  • Group Sessions
    • Achieved using a WebRTC mesh
  • Uses a custom wrapper around the YouTube Music API

...and so much more!

[1] iOS updates may break this from time to time, but works as of iOS 15.6

Repo Structure

Directory Description
app Beatbump web app
packages/hls-proxy-rewriter Proxy server used for Beatbump's music playback (WIP)

Instances

Service Uptime Monitoring: https://stats.uptimerobot.com/9PnmRfz6Gm

Name URL
Beatbump (Official) https://beatbump.io
~Vern (Clearnet) https://bb.vern.cc/
~Vern (Onion) http://bb.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/
~Vern (I2P) http://vern6inmbjzqpecx4kpkq5sln3cqqrfuxfzh4au3tpxbsfbwbnta.b32.i2p/
btb.frail.duckdns.org (Clearnet) https://btb.frail.duckdns.org/
bb.ggtyler.dev (Clearnet) https://bb.ggtyler.dev/
ytm.sudovanilla.com (Cloudflare) ytm.sudovanilla.com

Donations

Want to support Beatbump financially to aid with future development/hosting?

Donate with PayPal!

Donations of any amount are very much appreciated, so thank you if you choose to donate!

(Other ways to donate coming soon!)

Docker

Note: Still figuring out how to use Docker! Got a suggestion? Open an issue, thanks!

DockerHub

docker-compose (production)

The quickest way to host a Beatbump instance is with Docker. Once you have it installed, you can run:

docker-compose up

The app will now be accessible from https://localhost:443 / http://localhost:3000.

docker-compose (development)

(More details coming soon!)

Documentation

You can find (temporary, incomplete, and in-progress) API documentation here: https://beatbump-docs.vercel.app/

It's recommended (and appreciated) to host your own instance of Beatbump for public projects that want to use the data -- especially if you anticipate you will be making a large amount of requests. Thanks!

Project Inspirations

  • Invidious - a privacy focused alternative YouTube front end.

beatbump's People

Contributors

alx-alexpark avatar davidcollini avatar ganyuke avatar ggtylerr avatar locxter avatar mohammadrafigh avatar neeraj-2401 avatar snuffydev avatar sudovanilla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beatbump's Issues

"Fans might also like" should have artists in circle icons

The recommended artists at the bottom of an artists page should appear in circles to differentiate them from singles and albums, also the three dots and share button doesn't need to be there because the user can just copy the url

BeatBump apk/F-droid?

Will beatbump ever be available in app form (please, please, please)? If so, will it be available on F-droid

Re-arrange queue

The user should be able to long press on a song in queue and move it, like how songs are rearranged in custom playlists

Multiple playlists deleted on iOS

I've slowly noticed that my playlists on iOS have been getting deleted, I'm on the latest iOS version and I'll test this in more scenarios to see why it happens when I have more time

Background audio not working on Web App

I’m on iOS 15.1 and the WebApp doesn’t play audio in the background, also keep up the phenomenal work, I’ve been looking for a YouTube music frontend for awhile

Some songs don't play

Like... at all, in the network inspector I can see that the song's stream got 403-ed

Like, any song by Mori Calliope.
The "videos" do play, but songs don't.

Thankfully in the videos section it only has songs, so it's a temporary solution.

Website seems to be broken

After the latest commits, the website on iOS seems to have multiple features that are completely broken (playing songs, searching, and opening albums)

Boxes around everything

Beatbump uses visible boxes for grouping elements and making sure they behave properly but the problem for me is that they make the website look bad, I'm not sure if there's a way these boxes can blend into the background or if they're not needed at all but I think it would be better without them ex: image!!image

Shuffle doesn't work

When I press the shuffle button on any custom playlist, the first song always plays, then nothing plays after that, but the queue is shuffled correctly

Add to playlist button while listening to songs

Go to album, Add to playlist and Share don’t appear when the three dots in the bottom right corner of the screen are pressed while listening to a song, also thank you for addressing Issues with the app so quickly, I really appreciate your work

Cloudflare workers: could not find index.html in your content namespace

I tried to setup my beatbump site, but it keeps saying 'could not find index.html in your content namespace'.
Here is my wrangler.toml

name = "beatbump"
type = "webpack"
route = 'censored'
zone_id = 'censored'
account_id = 'censored'
usage_model = ''
compatibility_flags = []
workers_dev = true
[site]
bucket = "./static"
entry-point = "./workers-site"

Is the bucket directory wrong? You can close this issue if this issue cannot be solved.

Thanks for your support,

Dahyuk

You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.

when ran wrangler publish

Full log:

👀  ./workers-site/index.js 2406:24
Module parse failed: Unexpected token (2406:24)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|   var Context = {
|     player: (videoId, playlistId) => ({
>       videoId: videoId ?? null,
|       context: {
|         ...Player.context
Error: webpack returned an error. You may be able to resolve this issue by running npm install.

nullish coalescing operator and optional chaining not working in Cloudflare workers

Files in workers-site
image

Add to Queue Button doesn't work

When Add to Queue is pressed, the song keeps playing, but the buttons in the bottom bar stop working and the song isn't played next

Auto Redirecting Albums for LibRedirect

We're working on LibRedirect for auto redirecting YT Music links to your project. I didn't success in redirecting albums.

The id on the beatbump url is just weird. I didn't find it anywhere in the YT Music url.


Albums

YT music:  https://music.youtube.com/playlist?list=OLAK5uy_mOa4i-kkW9ZA9jU2REQR1fB2ZNWhdDCv0
Beatbump: https://beatbump.ml/release?id=MPREb_3DURc4yEUtD

YT Music:  https://music.youtube.com/playlist?list=OLAK5uy_n6OHVllUZUCnlIY1m-gUaH8uqkN3Y-Ca8
Beatbump: https://beatbump.ml/release?id=MPREb_QygdC0wEoLe

Singles

YT Music:  https://music.youtube.com/playlist?list=OLAK5uy_n-9HVh3cryV2gREZM9Sc0JwEKYjjfi0dU
Beatbump: https://beatbump.ml/release?id=MPREb_evaZrV1WNdS

Favorite Artists and Album

The library should have a tabular design for playlists, albums and artists with playlists selected by default

Songs play only within release page

Hi, thanks for this project.

This issue is somewhat similar to #9.
Also, I know there's a rewrite in progress, but I wanted to report it anyway.

So, I noticed some songs (almost any) play only within the release page:

simplescreenrecorder5-.2.mp4

However, there are some other songs that actually never play.

Videos work fine.

Redesign Artist pages

I would like to see a mobile design for artists pages similar to the YouTube music app image The image scales to a square with the buttons and artist's name centered

Use piped api

You can use piped instances as backend.
Piped have proxy for DRM protected content.

Turn “Your Songs” into a custom playlist

“Your Songs” takes up a lot of space in the library section, and I usually just press “see all” if I want to see my favorite songs, so if “Your Songs” was combined into a playlist called “Favorites” it would really un-clutter the library section

docker-compose ?

Hi, can you build a docker-compose file for this project? It would be really awesome :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.