You are browsing as a guest. Sign up (or log in) to start making projects!

Music PWA

  • 9 Devlogs
  • 61 Total hours

A music player progressive web application (PWA), for listening to music, downloading it, viewing the lyrics (with synced lyrics), listening to it with your phone screen off, and listening without an internet connection!

Ship #1 Pending review

I made a progressive web application that’s installable on mobile phones where users can listen to music without ads, download music for offline use, view synced lyrics and with many more other features!

Why did I make this project?
I hate subscribtions… I like the idea of listening to music when offline, etc. but I don’t want to pay for a subscription, so I decided to fix that issue.

This project isn’t 100% done yet, but it does it’s job and works!


⚠️ Important ⚠️

I wasn’t able to host this project on a hosting platform like vercel, because it doesn’t work there. It uses youtube to get music from (which also isn’t 100% legal/ethical) and youtube blocks these datacenter IP ranges to prevent this. You can test the project out yourself at your own risk! If you don’t want to do that, there is a video in the README showcasing the main features. Either way, see the README

  • 9 devlogs
  • 61h
Try project → See source code →
Open comments for this post

1h 59m 6s logged

Firstly I improved the offline screen and the error screen, then I created a README for the project and recorded a short video as a demo, because hosting on platforms like vercel doesn’t work (youtube requires sign-in on datacenter IP ranges)

0
0
2
Open comments for this post

7h 30m 6s logged

I created this playlist page, it allows you to reorder, remove, add, etc. songs to playlists, play them and also shuffle and play them. Now I’m optimizing the app, fixing some bugs and making it more user-friendly. For example I fixed the offline navigation issue, now the app doesn’t use the browser navigation when offline, so the music continues playing.

0
0
12
Open comments for this post

8h 20m 45s logged

I stopped working on this project for a while, so I forgot every little detail I worked on/changed. But in general, I worked on the concept of custom playlists, what is currently working is creating new playlists, saving them, playing a playlist, etc. but there still is stuff that’s missing, like a playlist page for example

0
0
15
Open comments for this post

7h 55m 36s logged

I fixed the issue with the song stopping when the phone screen turned off. It turns out putting a video with a single frame (the thumbnail) into an audio component does some video things and needs the hardware decoder, which was why it was stopping. I fixed it by converting the video file into an audio file in the download route. I also moved the logic that played the songs (next song when the current one finishes, etc.) from the watch page to a context, so it works on every page, not just the watch one.

0
0
9
Open comments for this post

3h 29m 19s logged

I tried to add the actual PWA support, and I did get the app to actually install (in chrome, not firefox) and cache the pages. It works offline, but there still are many issues that I don’t know how to fix, for example it reloading (resulting in the audio stopping) when I click a link, which wouldn’t normally happen when online. Also the audio stops playing when the screen turns off in chrome, but it doesn’t in firefox. I can start it again through the media session notification and then it plays.

0
0
6
Open comments for this post

6h 48m 20s logged

I made the lists reorderable, added media session support, created this lyrics player and added a three dot menu that now contains the old download functionality and moved the offline data indicators next to the three dots (I also added the option to add/remove the current song from the playlist).

0
0
16
Open comments for this post

9h 6m 35s logged

I made the playlist/play next list at the right of the screenshot. The functionality is inspired by youtube music – if the current song finishes, play the next one. If there isn’t a next one in this playlist, play the first from a “suggests” list and move it from the bottom list to the top one. This was really hard to do, because I wanted the url to update the song id without reloading the page, actually autoplaying the next song, etc. I also fixed some UI/layout issues.

0
0
10
Open comments for this post

5h 56m 41s logged

I added a responsive sidebar with a downloaded songs list. Later I added this layout to the main layout.tsx so it is on every page. I also made a global system for playing music so it doesn’t pause when you go to another page, and because of that I had to make my own UI controls component for it. And finally, I made the currently playing song to display on the bottom.

0
0
14
Open comments for this post

9h 37m logged

Firstly I made this search page that shows the search results, and then later I made this watch page where the user can download a song and play it.

0
0
27

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…