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

Playlists #123

Open
ghost opened this issue Feb 28, 2013 · 9 comments
Open

Playlists #123

ghost opened this issue Feb 28, 2013 · 9 comments
Labels
feature features we would like to implement migrated Issue migrated from Google Code

Comments

@ghost
Copy link

ghost commented Feb 28, 2013

This issue was automatically migrated from Google Code.
Original author: adrian.sampson (February 18, 2009 07:00:50)
Original issue: google-code-export/beets#8

@gadevoi
Copy link

gadevoi commented Dec 11, 2014

I'd be interested in this!
For me just having folder with .m3u that beets knows about and have it update the paths of the songs if they are moved on the filesystem is enough.
Maybe also adding a command like "beet list playlist:running" that would list all the songs in that playlist in the right order.

@Kernald
Copy link
Contributor

Kernald commented Mar 4, 2016

I'm currently looking for a way to manage playlists with beets. I already use smartplaylists plugin, but there's something lacking with it: I can't specify any arbitrary order without relying on an existing field. Of course I could add a custom field named playlist_rank on an item, and order the playlist's query with this field, but what if the song is in two different playlists?

From an (my) user perspective, a simple way to manage playlists would require 5 functionalities:

  • Create a new playlist
  • Remove an existing playlist
  • Display playlists
  • Export playlists (automatic step whenever the database changes?) in different formats (m3u in a specific folder for MPD, for example)
  • Edit playlists.

The edition part consists in multiple functionalities itself:

  • Add a song
  • Remove a song
  • Move a song, which would be optional as it simply consists in a removal then addition of the said song.

@sampsyo
Copy link
Member

sampsyo commented Mar 4, 2016

Yep, that seems like a great list of requirements.

If I could add one more: I've been fantasizing about having album playlists, not just track playlists. Perhaps even heterogeneous playlists that can contain a mixture of individual tracks and whole albums.

@skorokithakis
Copy link

I'd like to plug my own format here: The universal playlist format.

I'm working on a beets plugin that will use this, but it would be nice if it can get better support in core.

@djhibee
Copy link

djhibee commented Jan 8, 2018

Hello,
I have created some shell scripts to maintain playlists based on beets libraries. Some of the features requested above are implemented, like " When user A sends a playlist file (and just the playlist, not any of the music files) to user B, user B's music player should be able to find all the songs from the playlist that user B already owns, so they can be played."
The main con is the performances for huge libraries but it still works.
Unfortunately I did not wrote it in python as I wanted to play a bit with bash, so it needs to be migrated to include these as beets plugins.

@skorokithakis
Copy link

@djhibee That's very interesting, I'm interested in playlist functionality and adding UPL support to it. I already have scripts to export to UPL, but importing is not working very well yet.

@Holzhaus
Copy link
Contributor

Holzhaus commented Dec 28, 2018

IMO beets should use standard M3U playlists instead of maintaining it's own in-database format. This would greatly simplify interaction with media players (MPD, etc.). Here's a list of features that would be nice:

  • Add a playlist: query that reads filenames from a M3U playlist and looks them up in the DB (see [WIP] Add PlaylistQuery plugin #2380). This would make it possible to use it with the convert command to copy a playlist onto your mobile playback device.
  • Add a writeplaylist command that take a query and output/write M3U/EXTM3U playlists containing relative/absolute and Unix/Windows-style paths
  • If a track item is moved (using the move command), check if it's present in a playlist and update the path in the playlist to the new one

Holzhaus added a commit to Holzhaus/beets that referenced this issue Feb 15, 2019
Adds M3U playlist support as a query to beets and thus partially
resolves issue beetbox#123. The implementation is heavily based on beetbox#2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
Holzhaus added a commit to Holzhaus/beets that referenced this issue Feb 15, 2019
Adds M3U playlist support as a query to beets and thus partially
resolves issue beetbox#123. The implementation is heavily based on beetbox#2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
Holzhaus added a commit to Holzhaus/beets that referenced this issue Feb 15, 2019
Adds M3U playlist support as a query to beets and thus partially
resolves issue beetbox#123. The implementation is heavily based on beetbox#2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
Holzhaus added a commit to Holzhaus/beets that referenced this issue Feb 15, 2019
Adds M3U playlist support as a query to beets and thus partially
resolves issue beetbox#123. The implementation is heavily based on beetbox#2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
Holzhaus added a commit to Holzhaus/beets that referenced this issue Feb 17, 2019
Adds M3U playlist support as a query to beets and thus partially
resolves issue beetbox#123. The implementation is heavily based on beetbox#2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
@piegamesde
Copy link

@skorokithakis Any progress on the UPF front?

@skorokithakis
Copy link

Not much, I'm afraid. I did some work towards it but there's nothing finished, only some stand-alone scripts that can convert to/from PLS...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature features we would like to implement migrated Issue migrated from Google Code
Projects
None yet
Development

No branches or pull requests

7 participants