-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
smartplaylist: allow exporting item fields, rename m3u8 output to extm3u #5121
smartplaylist: allow exporting item fields, rename m3u8 output to extm3u #5121
Conversation
63840af
to
797de85
Compare
e45c4f0
to
a780bfb
Compare
Thank you for this PR! The code seems fine but might I ask that you add some more to the docs? Perhaps the keys to the attributes most likely to be used and an explanation for when they might be required, such as the web service you specified. |
Hi @mgoltzsche, great addition to smartplaylist and very interesting plugin you wrote. Please also add a link to your plugin's repo to this section of the docs when you are coming back to working on this PR: https://beets.readthedocs.io/en/latest/plugins/index.html#interoperability |
I rebased the PR now to resolve the merge conflict, added an entry to the interoperability section of the plugins/index.rst, added more info to the smartplaylist.rst. |
Okay, as described here re-selecting |
1b1db0a
to
352c3e2
Compare
@JOJ0 are you okay with having the webm3u plugin link within the "Other plugins" section of the documentation as opposed to putting it in the interoperability section? Otherwise, do you think the webrouter plugin should also be listed in the interoperability documentation section? |
Ah yes please put everything into the Other Plugins section. Seems like we file all of externally hosted plugins there. My suggestion here was wrong. I'm sorry: #5121 (comment) |
Allow generating extm3u playlists so that they contain additional item fields such as the `id`. The feature is required by the mgoltzsche/beets-webm3u plugin (M3U server) to transform playlists using a request based item URI template which may require additional fields such as the `id`, e.g. `beets:library:track;$id`.
Also, moves the webm3u plugin link from tne interoperability section to the "Other Plugins" section of the documentation.
291db57
to
3c6309f
Compare
Rebased to resolve merge conflict within changelog. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the massive delay in reviewing, I wanted to do this earlier. Code is fine, there is only one thing that I suggest to improve: Please add one or two example lines to the docs. How will a playlist entry look like with a specific config?
self.assertEqual( | ||
content, | ||
b"#EXTM3U\n" | ||
+ b'#EXTINF:300 id="456" genre="Fake Genre",Fake Artist - fake Title\n' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something like this: Add a config example and the resulting line on the playlist file to the docs.
Okay, I added an example configuration and extm3u playlist to the documentation now. Please re-review! |
245361a
to
dc0022e
Compare
c9d39f7
to
fba30fc
Compare
After some problems with the docs linter now the PR is ready for review again. |
2746074
to
2e9308f
Compare
BTW I like the tiny PlaylistItem class, something like that could also help with my never finished project of providing a general m3u handling solution in beets. Currently it's rather unspectacular, it has save/load functionality only: https://github.com/beetbox/beets/blob/master/beets/util/m3u.py oops oof-topic alert :-) |
Description
Allow generating extm3u playlists so that they contain additional item fields such as the
id
.The feature is required by the webm3u plugin (M3U server) to transform playlists using a request based item URI template which may require additional fields such as the
id
, e.g.beets:library:track;$id
.To Do
docs/
to describe it.)docs/changelog.rst
to the bottom of one of the lists near the top of the document.)