[GH-ISSUE #319] Folder as a playlist would be a really nice feature #234

Closed
opened 2026-02-26 02:32:31 +03:00 by kerem · 34 comments
Owner

Originally created by @sergiorodenas on GitHub (Apr 30, 2016).
Original GitHub issue: https://github.com/koel/koel/issues/319

Hey, thanks for contributing to Koel! To save time for both of us, please make sure these checkboxes are checked before submitting the issue:

  • You have read and followed closely the Wiki, Upgrade Guide, as well as Troubleshooting
  • The issue has not been reported before
  • This is not a "how to install on Windows" or "why is my npm messed up" question
  • You're a cool person (On the way)

All checked? Now also make sure your issue

  • Is associated with a version. Or better yet, a commit.
  • Is as detailed as possible (ahem... OS, browser, steps to reproduce, maybe?)
  • Includes the error output if it's a bug/error report ("Whoops!" is not very helpful, you know)
  • Is in English, 因为我不说中文。
Originally created by @sergiorodenas on GitHub (Apr 30, 2016). Original GitHub issue: https://github.com/koel/koel/issues/319 Hey, thanks for contributing to Koel! To save time for both of us, please make sure these checkboxes are checked before submitting the issue: - [x] You have read and followed closely the [Wiki](https://github.com/phanan/koel/wiki), [Upgrade Guide](https://github.com/phanan/koel/releases), as well as [Troubleshooting](https://github.com/phanan/koel/wiki/Troubleshooting) - [x] The issue has not been reported before - [x] This is not a "how to install on Windows" or "why is my npm messed up" question - [x] You're a cool person (**On the way**) All checked? Now also make sure your issue - [x] Is associated with a version. Or better yet, a commit. - [x] Is as detailed as possible (ahem... OS, browser, steps to reproduce, maybe?) - [x] Includes the error output if it's a bug/error report ("Whoops!" is not very helpful, you know) - [x] Is in English, 因为我不说中文。
kerem closed this issue 2026-02-26 02:32:31 +03:00
Author
Owner

@phanan commented on GitHub (May 1, 2016):

What do you mean by "folder as a playlist" exactly?

<!-- gh-comment-id:216015015 --> @phanan commented on GitHub (May 1, 2016): What do you mean by "folder as a playlist" exactly?
Author
Owner

@ethus3h commented on GitHub (May 2, 2016):

maybe folders on the server side are synced with playlists? idk though...

<!-- gh-comment-id:216086635 --> @ethus3h commented on GitHub (May 2, 2016): maybe folders on the server side are synced with playlists? idk though...
Author
Owner

@phanan commented on GitHub (May 2, 2016):

Then how about subfolders? I don't think that will work.

On Mon, May 2, 2016 at 8:59 AM, ethus3h notifications@github.com wrote:

maybe folders on the server side are synced with playlists? idk though...


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/phanan/koel/issues/319#issuecomment-216086635

<!-- gh-comment-id:216093384 --> @phanan commented on GitHub (May 2, 2016): Then how about subfolders? I don't think that will work. On Mon, May 2, 2016 at 8:59 AM, ethus3h notifications@github.com wrote: > maybe folders on the server side are synced with playlists? idk though... > > — > You are receiving this because you commented. > Reply to this email directly or view it on GitHub > https://github.com/phanan/koel/issues/319#issuecomment-216086635
Author
Owner

@R0binvd commented on GitHub (May 3, 2016):

Maybe just a browse by folder menu?

<!-- gh-comment-id:216459042 --> @R0binvd commented on GitHub (May 3, 2016): Maybe just a browse by folder menu?
Author
Owner

@sergiorodenas commented on GitHub (May 3, 2016):

Just a folder menu, yeah, that's it.
I said "as a playlist" because the view could be really similar. Also, people as me use the folders as "playlist", we want to mix and listen just the music that is on the folder.

<!-- gh-comment-id:216492471 --> @sergiorodenas commented on GitHub (May 3, 2016): Just a folder menu, yeah, that's it. I said "as a playlist" because the view could be really similar. Also, people as me use the folders as "playlist", we want to mix and listen just the music that is on the folder.
Author
Owner

@sergiorodenas commented on GitHub (May 3, 2016):

Furthermore, songs metadata as album and artist usually are null, spam or wrong, so with folders the user will be able to edit them in a "bulk" way because they will be in the same folder. Then the artists, album and lastfm system will work as expected 😮 cause metadatas are okey

<!-- gh-comment-id:216493414 --> @sergiorodenas commented on GitHub (May 3, 2016): Furthermore, songs metadata as album and artist usually are null, spam or wrong, so with folders the user will be able to edit them in a "bulk" way because they will be in the same folder. Then the artists, album and lastfm system will work as expected :open_mouth: cause metadatas are okey
Author
Owner

@phanan commented on GitHub (May 5, 2016):

This is not a bad idea, however its implementation would require more thinking and possibly a lot of code addition/changes, e.g. folder support, directory tree parsing and grouping etc. I'll leave this issue open to see if such a feature is in high demand though.

<!-- gh-comment-id:217053335 --> @phanan commented on GitHub (May 5, 2016): This is not a bad idea, however its implementation would require more thinking and possibly a lot of code addition/changes, e.g. folder support, directory tree parsing and grouping etc. I'll leave this issue open to see if such a feature is in high demand though.
Author
Owner

@sergiorodenas commented on GitHub (May 5, 2016):

Okey, I will try to do it by myself 🐤

<!-- gh-comment-id:217167552 --> @sergiorodenas commented on GitHub (May 5, 2016): Okey, I will try to do it by myself :baby_chick:
Author
Owner

@BernardGoldberger commented on GitHub (May 5, 2016):

@phanan @Rodenastyle I didn't understand in the start what the request was for but now that I do I have to say that it would be extremely useful and helpful, I had a similar thought a while ago but thought its too much too ask for.

+1

I'm looking forward to have this implemented.

<!-- gh-comment-id:217174262 --> @BernardGoldberger commented on GitHub (May 5, 2016): @phanan @Rodenastyle I didn't understand in the start what the request was for but now that I do I have to say that it would be extremely useful and helpful, I had a similar thought a while ago but thought its too much too ask for. +1 I'm looking forward to have this implemented.
Author
Owner

@sergiorodenas commented on GitHub (May 5, 2016):

Unfortunately I'm not pretty sure I'm able to develop this cause the multiple languages used. I'm able to do things like folders tree and so on using PHP and Laravel, but not with JS and it's own world 😅

<!-- gh-comment-id:217176430 --> @sergiorodenas commented on GitHub (May 5, 2016): Unfortunately I'm not pretty sure I'm able to develop this cause the multiple languages used. I'm able to do things like folders tree and so on using PHP and Laravel, but not with JS and it's own world :sweat_smile:
Author
Owner

@sergiorodenas commented on GitHub (May 5, 2016):

But it is really really similar as Playlists model

<!-- gh-comment-id:217177036 --> @sergiorodenas commented on GitHub (May 5, 2016): But it is really really similar as Playlists model
Author
Owner

@phanan commented on GitHub (May 5, 2016):

@bdgold There's no such thing as "too much to ask for" ;)

<!-- gh-comment-id:217179934 --> @phanan commented on GitHub (May 5, 2016): @bdgold There's no such thing as "too much to ask for" ;)
Author
Owner

@sergiorodenas commented on GitHub (May 9, 2016):

@phanan Just to know, is this already on the roadmap or shall I start trying to do it?

<!-- gh-comment-id:217939962 --> @sergiorodenas commented on GitHub (May 9, 2016): @phanan Just to know, is this already on the roadmap or shall I start trying to do it?
Author
Owner

@phanan commented on GitHub (May 10, 2016):

It's not on the roadmap, so please be my guest :)

On Tue, May 10, 2016 at 1:59 AM, Sergio Ródenas notifications@github.com
wrote:

@phanan https://github.com/phanan Just to know, is this already on the
roadmap or shall I start trying to do it?


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/phanan/koel/issues/319#issuecomment-217939962

<!-- gh-comment-id:218034339 --> @phanan commented on GitHub (May 10, 2016): It's not on the roadmap, so please be my guest :) On Tue, May 10, 2016 at 1:59 AM, Sergio Ródenas notifications@github.com wrote: > @phanan https://github.com/phanan Just to know, is this already on the > roadmap or shall I start trying to do it? > > — > You are receiving this because you were mentioned. > Reply to this email directly or view it on GitHub > https://github.com/phanan/koel/issues/319#issuecomment-217939962
Author
Owner

@epheo commented on GitHub (May 17, 2016):

+1
Being able to use the folder hierarchy of your collection would be very helpful.
Even without considering the "playlist" aspect.

<!-- gh-comment-id:219773809 --> @epheo commented on GitHub (May 17, 2016): +1 Being able to use the folder hierarchy of your collection would be very helpful. Even without considering the "playlist" aspect.
Author
Owner

@My1 commented on GitHub (May 22, 2016):

I agree to folder hierarchy. I literally always use it for the same reason as a poerson above. ID3 data is more often that not junk, and look at it from a positive side. when making an option "folder only" or whatever it removes the need of having to scan and sync the MP3's ID3 tags in an overly large database. the ID3 tags can be shown while the file is played (where it's read anyway) and the relevant folders can de facto be walked live. that could remove a LOT of syncing.

<!-- gh-comment-id:220828833 --> @My1 commented on GitHub (May 22, 2016): I agree to folder hierarchy. I literally always use it for the same reason as a poerson above. ID3 data is more often that not junk, and look at it from a positive side. when making an option "folder only" or whatever it removes the need of having to scan and sync the MP3's ID3 tags in an overly large database. the ID3 tags can be shown while the file is played (where it's read anyway) and the relevant folders can de facto be walked live. that could remove a LOT of syncing.
Author
Owner

@sergiorodenas commented on GitHub (May 22, 2016):

Definitely I have no enough time to develop this, but it's really needed. Really sorry.

<!-- gh-comment-id:220828963 --> @sergiorodenas commented on GitHub (May 22, 2016): Definitely I have no enough time to develop this, but it's really needed. Really sorry.
Author
Owner

@aroundmyroom commented on GitHub (Jun 5, 2016):

+1 here, as I have only 110.000 badly tagged songs (many wav, many flac) . mostly 12-inch ..

<!-- gh-comment-id:223827419 --> @aroundmyroom commented on GitHub (Jun 5, 2016): +1 here, as I have only 110.000 badly tagged songs (many wav, many flac) . mostly 12-inch ..
Author
Owner

@x0gen commented on GitHub (Jun 6, 2016):

I agree with everyone else for the same reasons (several thousands songs with bad tags), would be really nice!

<!-- gh-comment-id:223938685 --> @x0gen commented on GitHub (Jun 6, 2016): I agree with everyone else for the same reasons (several thousands songs with bad tags), would be really nice!
Author
Owner

@epheo commented on GitHub (Jun 11, 2016):

@Rodenastyle

Hi guys,

I really needed that functionality, so spent my saturday on a crappy python script who take the folder name from the path, create playlists from that names and add all the songs from the directory in the playlist.

https://gist.github.com/epheo/fc63f0297d50b81103729817eaa6d5fe
Took a while to run, working fine.

(Like this it will not recreate an existant playlist but will readd the songs each time in the playlists.
If we check if the song_id already exist it will not be able to add a song in different playlists,
So we need to check the combination of both... wich isn't done)

<!-- gh-comment-id:225366737 --> @epheo commented on GitHub (Jun 11, 2016): @Rodenastyle Hi guys, I really needed that functionality, so spent my saturday on a crappy python script who take the folder name from the path, create playlists from that names and add all the songs from the directory in the playlist. https://gist.github.com/epheo/fc63f0297d50b81103729817eaa6d5fe Took a while to run, working fine. (Like this it will not recreate an existant playlist but will readd the songs each time in the playlists. If we check if the song_id already exist it will not be able to add a song in different playlists, So we need to check the combination of both... wich isn't done)
Author
Owner

@TwizzyDizzy commented on GitHub (Jun 22, 2016):

Hi folks,

I have read only the first posts, but I have writen a PHP script to create playlists from folders. Please read the remarks in the file - or if something is unclear after reading - ask:

https://github.com/TwizzyDizzy/scripts/tree/master/php/koel-playlists-from-folders

Cheers
Thomas

<!-- gh-comment-id:227893633 --> @TwizzyDizzy commented on GitHub (Jun 22, 2016): Hi folks, I have read only the first posts, but I have writen a PHP script to create playlists from folders. Please read the remarks in the file - or if something is unclear after reading - ask: https://github.com/TwizzyDizzy/scripts/tree/master/php/koel-playlists-from-folders Cheers Thomas
Author
Owner

@X-Ryl669 commented on GitHub (Aug 10, 2016):

@phanan: Whatabout the following process (if ok, I might give it a try):

  1. Add a new "folder.vue" to resources/assets/js/components/main-wrapper/main-content/
  2. Make it a tree like structure like this except that only one child folder is allowed to be open at a time (to avoid clutter and slowness on the DOM)
  3. Each song in the folder tree appears like in the song-item.vue (so you can play a song directly)
  4. Folder name appears like in the albums (that is, clicking on a folder's play icon add all songs inside the folder to the current queue)

From a php point of view, I need to modify the data controller to also return a "folder" key with all recursive children. I'm not sure if it's the right way, or if I need to add a new route to get the folder list (I don't think it's useful to fetch the list until it's being used, as it will take a lot of (duplicate) memory with the songs's array already)

<!-- gh-comment-id:238913779 --> @X-Ryl669 commented on GitHub (Aug 10, 2016): @phanan: Whatabout the following process (if ok, I might give it a try): 1. Add a new "folder.vue" to resources/assets/js/components/main-wrapper/main-content/ 2. Make it a tree like structure like [this](http://vuejs.org/examples/tree-view.html) except that only one child folder is allowed to be open at a time (to avoid clutter and slowness on the DOM) 3. Each song in the folder tree appears like in the song-item.vue (so you can play a song directly) 4. Folder name appears like in the albums (that is, clicking on a folder's play icon add all songs inside the folder to the current queue) From a php point of view, I need to modify the data controller to also return a "folder" key with all recursive children. I'm not sure if it's the right way, or if I need to add a new route to get the folder list (I don't think it's useful to fetch the list until it's being used, as it will take a lot of (duplicate) memory with the songs's array already)
Author
Owner

@X-Ryl669 commented on GitHub (Sep 1, 2016):

Ok, I've done it and it works well. Please find it here: https://github.com/X-Ryl669/koel
I'm not submitting PR here since my solution depends on previous PR @phanan rejected.

<!-- gh-comment-id:244217193 --> @X-Ryl669 commented on GitHub (Sep 1, 2016): Ok, I've done it and it works well. Please find it here: https://github.com/X-Ryl669/koel I'm not submitting PR here since my solution depends on previous PR @phanan rejected.
Author
Owner

@bhajneet commented on GitHub (Sep 28, 2016):

Just wanted to input one more person's demand for this issue. This is how all my music is organized and I always play in terms of folder hierarchy.

Base
|---A
|------SA-1
|------SA-2
|---B
|---C

I usually either just play A for all of SA-1 and SA-2 combine or I can choose a subfolder inside it to play. This is the reason I can't leave foobar for my native application actually. It's amazing how such an old music player has had this feature and new music players often want you to re-create your playlists or import them from somewhere else. When the easiest way to make a playlist is to move songs around. (Of course you can't duplicate the same song in playlists without wasting more harddrive space or messing around with hard links, so I understand the benefits of evolving to playlists as well).

<!-- gh-comment-id:250263103 --> @bhajneet commented on GitHub (Sep 28, 2016): Just wanted to input one more person's demand for this issue. This is how all my music is organized and I always play in terms of folder hierarchy. ``` Base |---A |------SA-1 |------SA-2 |---B |---C ``` I usually either just play A for all of SA-1 and SA-2 combine or I can choose a subfolder inside it to play. This is the reason I can't leave foobar for my native application actually. It's amazing how such an old music player has had this feature and new music players often want you to re-create your playlists or import them from somewhere else. When the easiest way to make a playlist is to move songs around. (Of course you can't duplicate the same song in playlists without wasting more harddrive space or messing around with hard links, so I understand the benefits of evolving to playlists as well).
Author
Owner

@X-Ryl669 commented on GitHub (Sep 29, 2016):

This is exactly what my fork does. Have a look ;-)

<!-- gh-comment-id:250406030 --> @X-Ryl669 commented on GitHub (Sep 29, 2016): This is exactly what my [fork](https://github.com/X-Ryl669/kotr) does. Have a look ;-)
Author
Owner

@julianxhokaxhiu commented on GitHub (Apr 9, 2017):

Is this feature merged in the main koel app? I'm really looking for a web player that uses the Folder logic, and I was willing to create mine in NodeJS, although I've found your fork @X-Ryl669 which is amazing.

My only concern lives in the fact I would need to live with your fork forever, unless you keep in sync with @phanan work. Why not join forces and make the feature live in one repo only?

<!-- gh-comment-id:292798539 --> @julianxhokaxhiu commented on GitHub (Apr 9, 2017): Is this feature merged in the main koel app? I'm really looking for a web player that uses the Folder logic, and I was willing to create mine in NodeJS, although I've found your fork @X-Ryl669 which is amazing. My only concern lives in the fact I would need to live with your fork forever, unless you keep in sync with @phanan work. Why not join forces and make the feature live in one repo only?
Author
Owner

@X-Ryl669 commented on GitHub (Apr 10, 2017):

@phanan is doing amazing work to keep this app perfect (the code quality is very high).
I'm trying to fit his coding expectation, but I'm probably more pragmatic, so I've spent my time in implementing the features I was expecting from the application. When the change I'm doing are small and atomic, I'm creating a pull request and, usually, @phanan merges it. The folder code however was rejected because, IIRC, it was not the direction @phanan wanted the application to go and maybe because the code quality was not good enough at the time (which has probably improved, since I've learned a lot from @phanan coding practices).
In my fork, I've added many experimental features you might not want (like Genre browsing, Web-based library scanning with feedback, integration within a CMS...)

Right now, I'm doing a real native application for Android that would allow to browse your music library offline (with synchronization when you're online) and the plugin for the open-source Orpheus music player. It's not currently working smoothly, but it's coming soon when I think it'll be ready for testing. Once this is done, I'll have more time to split my work in smaller pieces and ask them to be integrated again.

<!-- gh-comment-id:292882832 --> @X-Ryl669 commented on GitHub (Apr 10, 2017): @phanan is doing amazing work to keep this app perfect (the code quality is very high). I'm trying to fit his coding expectation, but I'm probably more pragmatic, so I've spent my time in implementing the features I was expecting from the application. When the change I'm doing are small and atomic, I'm creating a pull request and, usually, @phanan merges it. The folder code however was rejected because, IIRC, it was not the direction @phanan wanted the application to go and maybe because the code quality was not good enough at the time (which has probably improved, since I've learned a lot from @phanan coding practices). In my fork, I've added many experimental features you might not want (like Genre browsing, Web-based library scanning with feedback, integration within a CMS...) Right now, I'm doing a real native application for Android that would allow to browse your music library offline (with synchronization when you're online) and the plugin for the open-source Orpheus music player. It's not currently working smoothly, but it's coming soon when I think it'll be ready for testing. Once this is done, I'll have more time to split my work in smaller pieces and ask them to be integrated again.
Author
Owner

@UmutAlihan commented on GitHub (Oct 9, 2020):

Ok, I've done it and it works well. Please find it here: https://github.com/X-Ryl669/koel
I'm not submitting PR here since my solution depends on previous PR @phanan rejected.

Please please please merge this feature with master :)

I sincerely would think that the only step this app is away from perfection is missing this feature. Just please :)

<!-- gh-comment-id:706250168 --> @UmutAlihan commented on GitHub (Oct 9, 2020): > Ok, I've done it and it works well. Please find it here: https://github.com/X-Ryl669/koel > I'm not submitting PR here since my solution depends on previous PR @phanan rejected. Please please please merge this feature with master :) I sincerely would think that the only step this app is away from perfection is missing this feature. Just please :)
Author
Owner

@artebin commented on GitHub (Nov 29, 2020):

Same thing for me, the folder view really is a user need :)

<!-- gh-comment-id:735379385 --> @artebin commented on GitHub (Nov 29, 2020): Same thing for me, the folder view really is a user need :)
Author
Owner

@PotatoYummy commented on GitHub (Jul 18, 2021):

+1

<!-- gh-comment-id:882003010 --> @PotatoYummy commented on GitHub (Jul 18, 2021): +1
Author
Owner

@MetallicAchu commented on GitHub (Jul 29, 2021):

+1

<!-- gh-comment-id:888850744 --> @MetallicAchu commented on GitHub (Jul 29, 2021): +1
Author
Owner

@poisonborz commented on GitHub (Feb 3, 2022):

https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1397
Funkwhale did also recently budge on this... Folder view would be super useful, and it's hard to believe it's ignored by most major selfhosted media servers. Lots of users already have their files organized... in a file system. No tagging or playlists needed. They just want access to that ready-made hierarchy.

<!-- gh-comment-id:1029053319 --> @poisonborz commented on GitHub (Feb 3, 2022): https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1397 Funkwhale did also recently budge on this... Folder view would be super useful, and it's hard to believe it's ignored by most major selfhosted media servers. Lots of users already have their files organized... in a file system. No tagging or playlists needed. They just want access to that ready-made hierarchy.
Author
Owner

@tidux commented on GitHub (Mar 12, 2022):

https://mstream.io/ might be what you're looking for @poisonborz

<!-- gh-comment-id:1065843128 --> @tidux commented on GitHub (Mar 12, 2022): https://mstream.io/ might be what you're looking for @poisonborz
Author
Owner

@poisonborz commented on GitHub (Mar 12, 2022):

Oooh that really does look great! Thanks, @tidux!

<!-- gh-comment-id:1065883341 --> @poisonborz commented on GitHub (Mar 12, 2022): Oooh that really does look great! Thanks, @tidux!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/koel-koel#234
No description provided.