Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Join me in Shaping the Future of the Music Service Project! #47

Open
thijstakken opened this issue Oct 11, 2023 · 22 comments
Open

Join me in Shaping the Future of the Music Service Project! #47

thijstakken opened this issue Oct 11, 2023 · 22 comments
Assignees
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@thijstakken
Copy link
Owner

Hello @TimotheFCN @0n1cOn3 @meiersmarkus @SkyBlack1225 @XRomix @gosoxharp @KaivandenBroek @whoisdsmith @sterno900 @SweetPeaIN @SalmanAlwann @lukasvdberk

Thank you for starring/liking my Music Service project!

Please join me in Shaping the Future of the Music Service Project!

Your expertise and unique perspective can help bring this project to the next level!

As we embark on this journey, I want to invite you to contribute your thoughts and ideas to help shape the project's future.

This project is about making the best tool to synchronize your music from any streaming provider to your own cloud storage/computer. So you can add your music to your favorite playlists (e.g. on YouTube) and the Music Service will automatically keep your playlists synced as MP3 files to your cloud storage/computer. Automate your music download flow!

I would like to hear from you about:

  1. Project Ideas: Do you have any innovative concepts or features that you believe could enhance the Music Service?
  2. Desired Features: What functionalities do you believe would make the Music Service more valuable to you? Whether it's user experience improvements, new integrations, or other enhancements.
  3. Use Cases: How do you envision using the Music Service in your own work or projects? Your insights can help me tailor the project to better meet your needs.
  4. Feedback and Suggestions: Even if you don't have specific ideas or features in mind, your feedback on the current state of the project is invaluable. What works well, and where do you see room for improvement?

We are only with 13 people so far, so your ideas and feedback will be read by me and could have a big impact on how I will develop the Music Service tool. I’m developing more and more because I want to improve my Python and Git skills :)

We can communicate through this issue/thread, and work together to get to a version 2, a reboot of the project. I will try to post regularly to show the progress so we can discuss it. We can post our thoughts, comment on existing ideas, and engage in discussions with fellow contributors.

Together, we can transform the Music Service into a amazing tool that serves our needs.

Thank you for reading until the end, your participation means a lot to me!

Warm regards,
Thijs Takken

@thijstakken thijstakken added help wanted Extra attention is needed question Further information is requested labels Oct 11, 2023
@0n1cOn3
Copy link

0n1cOn3 commented Oct 11, 2023

Hey

Thanks for bringing this thread up.
I'll can help, for sure. Im just not such a great coder at all 😅. But Ideas is already a beginning I would say 😁.

And I have already two ideas which could be implemented for V2:

  • Can be used/combined with Synology / QNAP Music library (SFTP/Webdav)

  • Maybe a co-op with Tubesync?

Thanks for your invite. Happy to be here and shaping the future 😊

Sincerly

0n1cOn3 / h@x

@thijstakken
Copy link
Owner Author

Hi @0n1cOn3 I appreciate you sharing the first ideas, those are some great points!

No coding = no problem :)

It should be all about ideas indeed!

Good to know you are also using WebDav which is the only supported protocol so far.
How do you like setting it up the music service with Webdav? Would SFTP be better for your use case?

Never heard of Tubesync before but this looks very neat, it's very similar but for videos instead of music. I like their UI design a lot, this is good for inspiration, thank you!

gr Thijs

@0n1cOn3
Copy link

0n1cOn3 commented Oct 17, 2023

Hey @thijstakken, that's good to hear. :)

I haven't gotten around to setting up the service yet, but my music consumption continues to make the project extremely exciting for me and I'm looking forward to when I finally find the time.

SFTP(SSH) would simplify access to local clouds (NAS) as well. At least from my experience. As example to specify:[IP] [Port] [Folder/Location/]

Tubesync is really neat. Not so fast because of the rate limits & SQLite but it does its job excellently 💪🏻

Maybe something else will come to my mind. Let's see how the alpha/beta will turn out 😁

@thijstakken
Copy link
Owner Author

@0n1cOn3
Yes no problem I understand!
Will look at how SFTP could fit in.

Thanks for your input!

@TimotheFCN @meiersmarkus @SkyBlack1225 @XRomix @gosoxharp @KaivandenBroek @whoisdsmith @sterno900 @SweetPeaIN @SalmanAlwann @lukasvdberk

I would like to know if any of you got to install and use the tool so far.
How did you experience the setup?

And if you have not set it up yet, I would like to know why.

  • Is it too hard to set up, documentation/tool itself, usability?
  • What could be better, so you feel confident to set it up with ease?

You can be brutally honest and direct, I'm dutch, we are not offended easily :)

gr Thijs

@thijstakken
Copy link
Owner Author

Additional inspiration and feedback:

@lukasvdberk

  1. Webapp
  2. Webapp Authentication
  3. OAuth for Webdav

@StefvanEgmond

  1. Chaotic documentation, too overwhelming

@thijstakken
Copy link
Owner Author

thijstakken commented Oct 23, 2023

Hi all, thanks for your feedback!
In order to get to a valuable and easy to use tool, I've collected your feedback so far.

This gave a great insight on what features are important.
In order to create clarity on what features are being built and the progress, I have created a new project board.
You can find the project board here, I will fill it with all ideas and features and keep them updated:
https://github.com/users/thijstakken/projects/3

Music Reboot Project vision as of 23 okt 2023:

The biggest challenge seems to lie with the ease of use, the documentation is too long and complex, making it hard to set-up and use. While it should be easy... a turnkey solution.

@0n1cOn3 mentioned Tubesync, and just like other similar Youtube-DL projects, they are all built like a WebApp. This makes them easy to get running, and then configure through a GUI. Drastically reducing the set-up effort, while making configuring the tool easier and reducing set-up documentation.

A WebApp! No longer an CLI tool...

  1. Transforming into a WebApp because it could increase usability and decrease the amount of documentation needed.
  2. New features will be built on top of the WebApp, making them easier to configure and expand later on, like support for SFTP from the GUI, and OAuth.

I want to attempt monthly releases, so we can evaluate and iterate quickly!
From now on, version numbering will be: year.month.minorversion. This makes the different versions easier to understand and from which date they are.

gr Thijs

@thijstakken thijstakken self-assigned this Oct 23, 2023
@thijstakken thijstakken added this to the Music Reboot Project milestone Oct 23, 2023
@thijstakken
Copy link
Owner Author

@0n1cOn3 @lukasvdberk @StefvanEgmond

Quick update.

  1. I feel like a n00b again, and I love it
  2. Progress has been made
  3. Pre-release for you guys to check out soon

While building the webapp I've been stuck very frequently, the whole Flask framework and ecosystem are new to me and it has taken lot's more time to learn then what I expected. This is no problem though and I'm learning a lot.

These have been the milestones so far:

  1. All functions from the orignal program have been embedded into a webapp, which means all functions can be controlled and configured through the webapp. (fixing minor bugs and optimizing has still to be done)
  2. New functions have been added like the ability to monitor some playlists and songs or to choose if you just want to download them once.
  3. Since the app contains sensitive information (your config and your settings with which it connects to a cloud storage solution where it will put the music for you) an authentication mechanism is also needed to provide login to keep strangers out of the app. (currently building)

After the authentication has been completed and the core app has been tested well, I will finaly write the documentation, which will be much simpeler since the webapp has been made to be easy and straightforward to use (I hope).

When the first MVP is done, I will make another post here in this thread and release a pre-release for you guys to test it out before the real release will be made. Looking forward to it!

What are your thoughts if you have any?

gr Thijs

@TimotheFCN
Copy link

TimotheFCN commented Jan 24, 2024

I am a bit late to the party but very excited for the future of this project. I have been using it for a few months now and just the fact that such a niche project exists warms my heart :)
Here is my use case:
I use soundcloud a lot to discover new songs, but really dislikes all their interfaces (app, desktop, ... it's garbage). I also need to download mp3s to DJ. I have this tool setup on my NAS to download playlists from my soundcloud account. I then periodically copy the whole folder with all my songs to my apple music library (one folder = one playlist). I use apple music because it is then synced to all my devices but most importantly directly inside Rekordbox which I use to DJ.

This tool has greatly improved my workflow but I see so much things that could make it perfect (aside from some optimization to reduce resources consumption)

  • First the webui is absolutely the most needed feature, and seeing rapid progress is really exciting !
  • Authentication to download private playlists and liked titles would be awesome too (I think that you are also working on this)
  • Simple folder sync (since I am using truenas, I just need to mount my media folder inside the docker container, no webdav or anything)
  • Full sync of folders, going both ways (if a song is deleted from the playlist, delete it from the synced folder, and vice versa)
  • Better database system (this goes with the previous point, but to achieve it, it would probably require a more robust database system either a json file, sqlite, or something like that), as the playlists grows, reading a file again and again becomes very ressources intensive.

I will try to contribute as much as I can to this project when I think I can help with something ! I am looking at your webui branch right now.

Thanks a lot for your work, good luck and have fun ☺️

@thijstakken
Copy link
Owner Author

Hi @TimotheFCN !

This is great to hear, first feedback from someone who is using the tool already!

Great to know how you're using it for your workflow, seems totally logical to me that your using a mount to your media folder since you're on a NAS. There is no standard way to deal with that right now, so I assume you are using a workaround of some sort (to stop webdav from interfering)?

The points you mention are totally fair, indeed these things could be great features. The first things are the webgui, and the database system (I've started using sqlite), the other points you mentioned can be future features for sure, i've noted them also.

I will add a file based option to the music service also, so instead of choosing Webdav (which is the only option in the GUI right now) I will make an option for simple file based system. So you have a native option for your workflow with "simple folder sync", which will put the songs in a folder whithout any other logic. Do I understand your ideal flow correctly?

Thank you so much for your message, and for giving the music tool a chance already, this means a lot to me!

gr Thijs

@TimotheFCN
Copy link

Hi @TimotheFCN !

This is great to hear, first feedback from someone who is using the tool already!

Great to know how you're using it for your workflow, seems totally logical to me that your using a mount to your media folder since you're on a NAS. There is no standard way to deal with that right now, so I assume you are using a workaround of some sort (to stop webdav from interfering)?

The points you mention are totally fair, indeed these things could be great features. The first things are the webgui, and the database system (I've started using sqlite), the other points you mentioned can be future features for sure, i've noted them also.

I will add a file based option to the music service also, so instead of choosing Webdav (which is the only option in the GUI right now) I will make an option for simple file based system. So you have a native option for your workflow with "simple folder sync", which will put the songs in a folder whithout any other logic. Do I understand your ideal flow correctly?

Thank you so much for your message, and for giving the music tool a chance already, this means a lot to me!

gr Thijs

You understood perfectly !
Right now I don't have the path directly mounted, I still use webdav with nextcloud, but this would be a great feature and probably very simple to implement since it involves... removing things 😂

Thanks a lot for the time you are putting into this !

@thijstakken
Copy link
Owner Author

@TimotheFCN @0n1cOn3 @lukasvdberk @StefvanEgmond

It has been silent for some time...
But there is news!

Almost every week I've added functionality and kept on learning.
A huge helper that I found is the amazing Flask mega-tutorial by Miguel Grinberg.

I feel like I'm now at 80% completion of the new webgui music application, but it's taking more time then expected.

So to give you an idea of how it's looking, here are some screenshots of the app in the current stage.

Sign In page

SignInPage

Main app page

MainAppPage

Settings page

SettingsPage

Configure your storage target!

SynchronisationPopUp

Song archive

ArchivePopUp

Let me know your thoughts!

gr Thijs

@StefvanEgmond
Copy link

Yoo this looks awesome. Will there be a way to disable registration and just add users via an admin?

@0n1cOn3
Copy link

0n1cOn3 commented May 15, 2024

Thank you very much for your feedback on the development!
It looks really smart!

I've just had another idea for it which could be implemented as well.
Push notification (Gopher, Telegram, Discord, Firebase (Android)

Perhaps also remote management via Discord, Telegram etc.

I've looked up the links to the APIs for you.

https://core.telegram.org/

https://discord.com/developers/docs/reference

@thijstakken
Copy link
Owner Author

thijstakken commented May 21, 2024

Yoo this looks awesome. Will there be a way to disable registration and just add users via an admin?

Oh yes @StefvanEgmond , this is precisly what I had in mind! I want to have an onboarding page, where you can create your first (admin) user.
After the first user signs up, the sign-up will be disabled automatically. And there will be a admin page later, from where you can create additional users with your admin account.

gr Thijs

@thijstakken
Copy link
Owner Author

Thank you very much for your feedback on the development! It looks really smart!

I've just had another idea for it which could be implemented as well. Push notification (Gopher, Telegram, Discord, Firebase (Android)

Perhaps also remote management via Discord, Telegram etc.

I've looked up the links to the APIs for you.

https://core.telegram.org/

https://discord.com/developers/docs/reference

Thank you @0n1cOn3 !!!

These are nice points, I also like these things in various other open source apps that I use myself, so I totally understand where you're coming from.

But importantly, I need to limit the features for now, first I want to get the existing features out in the webgui app.
After that, let's look at adding features like these!

gr Thijs

@calonmerc
Copy link

Joining the party, both late to find and late to join!

I personally have gone through webapp after webapp trying to find something simple that just works... and been disappointed and frustrated every time... I want something that I can change via a config file and just add a playlist.... everything nowadays has a webapp....until I came across this and it didn't have a webapp. Generally not for, nor against, a webapp for a tool like this, as long as it actually works for the user!

Regardless, if you can maintain simple "add playlists in bulk" without an overly complicated UI, that either defaults to downloading music to Playlist folders, or a default structure that's adaptable to the user (looking at you, Lidarr), then I'll be on board and happy to commit some time writing or testing features! I love the idea of a login, etc, as long as it can be disabled for local use only. (Again, webapp overload and everyone writes their own "security"... so almost all my "tools" are "double secure" behind my network and then an arbitrary login process)

A note for notifications as mentioned earlier in the thread: eschew with individual notification services and integrate Apprise (not written by me, similar name).

@thijstakken
Copy link
Owner Author

@calonmerc I can look at a way to have an "just download" option, where you only have to supply an url, or in bulk url's, and then it will just go.

@0n1cOn3
Copy link

0n1cOn3 commented Jun 11, 2024

Uhm... @thijstakken, there might a huge thing coming from Google which might can make the project more complicated.
Then Google is now testing forcing users to log in, which breaks all downloaders including yt-dlp, and discord music bots as well. One user on GitHub mentioned we should get Louis Rossman on this.

More infos are here available:

imputnet/cobalt#551

@thijstakken
Copy link
Owner Author

@0n1cOn3
Let's say YouTube bans access without an account. Since I use youtube-dlp, it would need a token of some sort, to handle authentication. This is a great topic for the youtube-dlp community and alike to pick up on. But I believe this is already possible.

With that said, I hope YouTube remains open, it would possibly not be good for privacy if an account is required. Users could be tracked more closely, and this should not be an requirement for accessing websites in my opinion. It could also pose a risk to downloading, with the risk of YouTube potentially terminating your account if you happen to misbehave according to their rules.

So far, seeing the controversy and actions Google did take on the battle over adblockers, Google has not yet succeeded in it's efforts and the developer community keeps on creating new solutions so far. These sorts of actions are logical for Google, from a business perspective and that's allright, but the privacy risks are in my opinion far more important for as why these sorts of actions should be stopped.

I do not expect to see any breaking changes soon (speculation), we might end up in a temporary battle, but that is not up to me. I will keep on using youtube-dlp for as long as possible and expect that they will take countermeasures whenever neccesarry, just as we've seen with the adblocker battle. Only time will tell and nothing is forever, so it cannot be predicted precisly what will ultimatly happen.

@0n1cOn3
Copy link

0n1cOn3 commented Jun 12, 2024

@0n1cOn3

Let's say YouTube bans access without an account. Since I use youtube-dlp, it would need a token of some sort, to handle authentication. This is a great topic for the youtube-dlp community and alike to pick up on. But I believe this is already possible.

With that said, I hope YouTube remains open, it would possibly not be good for privacy if an account is required. Users could be tracked more closely, and this should not be an requirement for accessing websites in my opinion. It could also pose a risk to downloading, with the risk of YouTube potentially terminating your account if you happen to misbehave according to their rules.

So far, seeing the controversy and actions Google did take on the battle over adblockers, Google has not yet succeeded in it's efforts and the developer community keeps on creating new solutions so far. These sorts of actions are logical for Google, from a business perspective and that's allright, but the privacy risks are in my opinion far more important for as why these sorts of actions should be stopped.

I do not expect to see any breaking changes soon (speculation), we might end up in a temporary battle, but that is not up to me. I will keep on using youtube-dlp for as long as possible and expect that they will take countermeasures whenever neccesarry, just as we've seen with the adblocker battle. Only time will tell and nothing is forever, so it cannot be predicted precisly what will ultimatly happen.

I absolutely agree with you.

I just thought that this might be relevant, hence this post of mine. A lot of things are based on yt-dlp, as is this project.
In this sense,

I think it is not completely out of place to always be up to date in order to adapt the development in this time :D

@thijstakken
Copy link
Owner Author

thijstakken commented Jun 12, 2024

Yoo this looks awesome. Will there be a way to disable registration and just add users via an admin?
@StefvanEgmond

Tonight I've built the onboarding page. Please see commit: 7549e69

When you first start this app, and no users exists, it will now kindly ask you to register your first admin user. After that happens, the registration page get's blocked. Nobody can sign-up after this themselves.

In the future I will create an admin page, where this admin user can create more users (if you want to). I will create a new Github issue for this, so we will not forget :)

@thijstakken
Copy link
Owner Author

Thanks everyone for participating towards the new release. I can now finally say that the first renewed version of the app is out!
Please see: https://github.com/thijstakken/MusicService/releases/tag/2024.7

Thank you all so much, without the feedback along the way, this would not have been possible.
Let's see where to go from here 👀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
Status: In Progress
Development

No branches or pull requests

5 participants