deepjyoti30 / ytmdl-web-v2

Web version of ytmdl. Allows downloading songs with metadata embedded from various sources like itunes, gaana, LastFM etc.
https://ytmdl.deepjyoti30.dev
MIT License
978 stars 73 forks source link

Playlist and batch downloads #18

Closed aahnik closed 3 years ago

aahnik commented 3 years ago

What I really love about this is the cool UI. I earlier used to use youtube-dl to download music like this

 youtube-dl URL -g -x --audio-format mp3

I could automate the download of the entire playlist, or a list of links, easily using some simple python script.

But since, I have used your product, I have fallen in love with it. There is no going back to old ways.

It would be great if you would support playlist URLs. Most people collect their favorite songs in playlists.

The end-user would enter the playlist URL (it must be public or unlisted), and ytmdl would fetch the list of all songs, and add metadata automatically.

That would be a great experience.

It would be great, if entering multiple URLs is supported.(some plus button) I would enter all the URLs, and then ytmdl-web would download them all.

deepjyoti30 commented 3 years ago

@aahnik I know what you're talking about. I have already heard this feature request from so many users. You'd be happy to hear, I'm already working on adding playlist support in the next release of the webapp. It is still a WIP but it is coming along well.

I share my playlist development updated mostly on my patreon since it helps handle the server costs and users get sneak peek of latest stuff.

You can also keep a look at the playlist branch of the webapp.

For now you can consider using the commandline version of the app since that already supports for a while now and it is pretty good!

aahnik commented 3 years ago

I am so happy to hear this!

fine2006 commented 3 years ago

@deepjyoti30 One critique I personally have of ytmdl (that isn't super easy to solve there, but maybe possible to solve here) is: Selecting metadata for each song is PAIN. Could you do something like this?

  1. Auto attach the metadata to all the songs in the playlist
  2. Display it in a list, with thumbnail and some of the metadata
  3. Allow manually searching (and editing) the metadata in the list

Imo this will make the process loads easier 😁

deepjyoti30 commented 3 years ago

@fine2006 That can be a nice consideration. As of now, regarding the playlist metadata, I was aiming to use youtube-music api to find the song attached to the youtube video and directly search the metadata.

My idea of the playlist implementation was:

  1. Accept playlist URL from the user
  2. Show users a list of the songs and let them select what they want to download
  3. Go for the old flow (ask to search metadata or manual enter) for each song
  4. Finally show a list of the songs and let the user each of them individually or as a zip.

I have to admit the 3rd step can be made more intuitive by automatically selecting the metadata but the concern there is that finding the metadata for a song automatically is very inaccurate. That might change if youtube music turns out to be as good but I'll have to see.

Regarding your suggestion of the list and allowing a button that the users can click to select meta for that song, that's a nice one. I'll keep that in mind!

fine2006 commented 3 years ago

I see, so grabbing correct metadata can be hard. But as a good first draft, you could just use the first metadata result from the title search as the metadata? It would have a huge amount of errors (I'm expecting 60-70% accuracy), but I have downloaded a playlist with 200+ songs, and I can't describe enough how much of a pain it was 😬 (I was never able to complete it without getting bored 😋)

deepjyoti30 commented 3 years ago

@fine2006 That's the issue. If you used the ytmdl cli you'd know this that when playlists were downloaded earlier the meta name was still asked to the user but since a recent update, the CLI also uses the YoutubeMusic API to get the proper song name.

Since the addition of the feature, the hit ratio for a proper song name has become something like 80% whereas earlier it was about 20% or less (actually).

That's the reason I'm planning of adding the above feature to the webapp as a whole.

fine2006 commented 3 years ago

Would adding the ytmusic api make it prone to rate-limiting? Because in that case, you would have to switch to using personal api keys, which isn't something everyone is willing to do 😅

deepjyoti30 commented 3 years ago

@fine2006 No that won't be the case. The thing is Youtube doesn't have an official public API for Youtube Music (afaik) so we're going with the unofficial ytmusicapi. So there shouldn't be any such issues like rate limiting.