Project

General

Profile

Feature #875

Extended M3U support

Added by Raitaro Hikami 26 days ago. Updated 1 day ago.

Status:
New
Priority:
Major
Assignee:
-
Category:
plugins/m3u
Target version:
-
Start date:
February 24, 2019
Due date:
% Done:

0%

Estimated time:
Affects version:

Description

As described on the wikipedia page for the m3u format: https://en.wikipedia.org/wiki/M3U

I need something like this:

 #EXTM3U
 #EXTINF:419,Alice in Chains - Rotten Apple
 Alice in Chains_Jar of Flies_01_Rotten Apple.mp3

I tried making a quick playlist using youtube-dl. Seems that audacious can use the links given by `-g` option quite well though. The problem is that I would like to have the file name not the url. I usually do something like this:

play=/tmp/playlist.m3u
youtube-dl -g $link >> $play
audacious --qt $play & > /dev/null 2>&1

On the other hand, if I use shorten links, generated by something a bit more complex, but faster (not to mention more readable output):

echo "#EXTM3U" > short.m3u
youtube-dl -j --flat-playlist https://www.youtube.com/playlist\?list\=PLURsDaOr8hWWGebP8AGmA3Wu2WAQEHFUc | jq -r '.title, .url' | sed -e '2~2s_^_https://youtu.be/_' -e '1~2s_^_#EXTINF:,_' >> short.m3u

I get something like this:

#EXTM3U
#EXTINF:,My Chocolate Croissant Was Supposed To Be Perfect...
https://youtu.be/HQeIivIacJc
#EXTINF:,I Learned How To Temper Chocolate... (science included)
https://youtu.be/3-EKcYqKEec
#EXTINF:,I Tried "Sous-Vide" to Temper Chocolate... (best move ever)
https://youtu.be/--KcoWb8ZD4
#EXTINF:,I Designed Custom Chocolate Bars Using Thermoforming...
https://youtu.be/O5SwGr-84c4

The generated playlist seems completely fine on vlc, on audacious on the other hand it simply... well, gives an error: `File format not recognized`

short.m3u (385 Bytes) short.m3u Raitaro Hikami, February 24, 2019 10:18
m3u.diff (6.16 KB) m3u.diff m3u.cc diff Jim Turner, March 07, 2019 03:51
playlist-data.cc.diff (2.44 KB) playlist-data.cc.diff Post 878 Ext. m3u playlist patch for CORE. Jim Turner, March 18, 2019 03:57

History

#1 Updated by John Lindgren 25 days ago

  • Category set to plugins/m3u
  • Subject changed from m3u file: metadata is ignored, short links do not work to Extended M3U support
  • Tracker changed from Bug to Feature

That's the "Extended M3U" format, we don't support that currently.

And your short links point to HTML pages, how exactly did you expect Audacious to "play" those?

#2 Updated by Raitaro Hikami 25 days ago

Ok so what kind of format does audacious support exactly? Should I copy the ones found in .config/audacious/playlists?

Again, `vlc https://youtu.be/HQeIivIacJc` works :)

#3 Updated by Raitaro Hikami 25 days ago

Getting the full link from that I get this loooooong thingy here. But whatever, this is to be used for streaming some stuff. The issue is this links is very long and takes a while to be generated vs the nice and quick js option :(

▶ youtube-dl -g https://youtu.be/HQeIivIacJc
https://r1---sn-pouxga5o-vu2l.googlevideo.com/videoplayback?signature=58109388B28D71A5815495CB4827A2D73CAA7F56.82E7968B3696D80553E47011C32B8E3C63987695&fvip=3&ratebypass=yes&requiressl=yes&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&itag=22&ei=V6ByXNWkA9fk7gOn_6_4BQ&key=yt6&id=o-AAwXENMdGgnmEGU_QIkXjRdcuhutGvT1ZLgqYbppgiBJ&lmt=1550360255567520&mn=sn-pouxga5o-vu2l%2Csn-c0q7lnsl&c=WEB&ipbits=0&mm=31%2C29&txp=5532432&initcwndbps=186250&pl=24&mime=video%2Fmp4&mt=1551015881&ip=94.176.148.35&ms=au%2Crdu&expire=1551037623&mv=m&dur=585.026&source=youtube

Would be cool to pipe btw... `youtube-dl -g https://youtu.be/HQeIivIacJc | audacious --qt`

#4 Updated by Raitaro Hikami 24 days ago

🤞😤

#5 Updated by Jim Turner 15 days ago

Supporting extended m3u playlists does not appear to be difficult. Here's a patch to m3u.cc to do just that that seems to work for me. It also adds a checkbox to the plugin's [settings] labeled "Save in Extended M3U format" []. It will load either normal or extended playlists regardless.

Regards,

Jim

#6 Updated by Raitaro Hikami 9 days ago

Jim Turner wrote:

Supporting extended m3u playlists does not appear to be difficult. Here's a patch to m3u.cc to do just that that seems to work for me. It also adds a checkbox to the plugin's [settings] labeled "Save in Extended M3U format" []. It will load either normal or extended playlists regardless.

Regards,

Jim

So... I assume I will have to apply the diff in this: https://github.com/audacious-media-player/audacious-plugins/blob/master/src/m3u/m3u.cc
Then I need to configure and make install the repo itself, right?

#7 Updated by Raitaro Hikami 9 days ago

To be fair I tried.

To build audacious I did:

TPUT=/bin/true ./configure --prefix=/usr --enable-qt --disable-gtk &&\
make
sudo make install

For plugins:

TPUT=/bin/true ./configure --prefix=/usr --disable-wavpack --with-ffmpeg=none --enable-qt --disable-gtk &&\
make
sudo make install

And I just get

ERROR plugin-init.cc:147 [start_required]: No output plugin found.
(Did you forget to install audacious-plugins?)

Not sure why so I simply `sudo make uninstall` and reinstalled audacious normally and not it works. (-H works btw)

Ah well, will be waiting for the support to trickle down in my ppa ¯\_(ツ)_/¯

#8 Updated by John Lindgren 8 days ago

Jim Turner wrote:

Supporting extended m3u playlists does not appear to be difficult.

The problem is that refreshing the playlist will throw away the info from the extended M3U. We need a way (for example, a flag in the Tuple class) to mark info that came from a playlist (cuesheet or extended M3U) rather than from the audio file itself.

#9 Updated by Jim Turner 4 days ago

@John: That's what the playlist-data.cc part of my Bug#878 patch addresses. BTW, I've replaced the scanner.* parts of that patch with your fix for that issue and it seems to work fine now, thanks! I'm including an update to the playlist-data.cc patch here that incorporates that change, see attached.

@Raitaro: Sry you're having trouble building Audacious, but I actually was addressing that patch toward the developers. Here's how I build Audacious:

1) Make sure you have all the "dev" vsns of the required libs:
sudo apt-get install git automake build-essential libasound2-dev \
libavformat-dev libbinio-dev libbs2b-dev libcddb2-dev libcdio-cdda-dev \
libcue-dev libcurl4-gnutls-dev libdbus-glib-1-dev libfaad-dev libflac-dev \
libfluidsynth-dev libgl1-mesa-dev libgtk2.0-dev libguess-dev \
libjack-jackd2-dev liblircclient-dev libmms-dev libmodplug-dev libmp3lame-dev \
libmpg123-dev libneon27-gnutls-dev libnotify-dev libpulse-dev \
libsamplerate0-dev libsdl2-dev libsidplayfp-dev libsndfile1-dev libsoxr-dev \
libvorbis-dev libwavpack-dev libxml2-dev libsndio-dev libswscale-dev libdvdread-dev libdvdnav-dev

2: UNINSTALL all your existing Audacious packages from your distro (it shouldn't delete your /home/you/.config/audacious files - Tar 'em up to be SURE)!

3):
mkdir audacious; git clone git://github.com/audacious-media-player/audacious.git audacious

mkdir audacious-plugins; git clone git://github.com/audacious-media-player/audacious-plugins.git audacious-plugins

5):
cd audacious
./autogen.sh
./configure --prefix=/usr/local [--enable-qt]
make -j2
sudo make install
cd ../audacious-plugins
./autogen.sh
./configure --prefix=/usr/local
make -j2
make install
cd ..
/usr/local/bin/audacious

Good luck!

Jim

#10 Updated by Raitaro Hikami 1 day ago

@Jim
Thank you for the build script. What I did to get the devs was compiling, see what I was missing, and compiling again, which I don't think I did well.

Also available in: Atom PDF