rigon / qmmp-plugin-youtube Goto Github PK
View Code? Open in Web Editor NEWPlugin for Qmmp (Qt-based Multimedia Player) to search and play musics directly from YouTube.
License: MIT License
Plugin for Qmmp (Qt-based Multimedia Player) to search and play musics directly from YouTube.
License: MIT License
Hi rigon, when I try to compile this plugin against qmmp-1.3.4 I get this error:
cd youtubeui/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /tmp/portage/media-plugins/qmmp-plugin-youtube-0.3.2/work/qmmp-plugin-youtube-0.3.2/youtubeui/youtubeui.pro 'QMAKE_AR=x86_64-pc-linux-gnu-ar cqs' QMAKE_CC=x86_64-pc-linux-gnu-gcc QMAKE_LINK_C=x86_64-pc-linux-gnu-gcc QMAKE_LINK_C_SHLIB=x86_64-pc-linux-gnu-gcc QMAKE_CXX=x86_64-pc-linux-gnu-g++ QMAKE_LINK=x86_64-pc-linux-gnu-g++ QMAKE_LINK_SHLIB=x86_64-pc-linux-gnu-g++ QMAKE_OBJCOPY=x86_64-pc-linux-gnu-objcopy QMAKE_RANLIB= QMAKE_STRIP= 'QMAKE_CFLAGS=-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu' QMAKE_CFLAGS_RELEASE= QMAKE_CFLAGS_DEBUG= 'QMAKE_CXXFLAGS=-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu' QMAKE_CXXFLAGS_RELEASE= QMAKE_CXXFLAGS_DEBUG= 'QMAKE_LFLAGS=-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32' QMAKE_LFLAGS_RELEASE= QMAKE_LFLAGS_DEBUG= ) && make -f Makefile
make[1]: Entering directory '/tmp/portage/media-plugins/qmmp-plugin-youtube-0.3.2/work/qmmp-plugin-youtube-0.3.2/youtube'
x86_64-pc-linux-gnu-g++ -c -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/python3.6m -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o youtubefactory.o youtubefactory.cpp
x86_64-pc-linux-gnu-g++ -c -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/python3.6m -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o youtubeinputsource.o youtubeinputsource.cpp
x86_64-pc-linux-gnu-g++ -c -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/python3.6m -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o youtubestreamreader.o youtubestreamreader.cpp
make[1]: Entering directory '/tmp/portage/media-plugins/qmmp-plugin-youtube-0.3.2/work/qmmp-plugin-youtube-0.3.2/youtubeui'
/usr/lib64/qt5/bin/uic youtubewindow.ui -o ui_youtubewindow.h
/usr/lib64/qt5/bin/uic youtubepreferences.ui -o ui_youtubepreferences.h
x86_64-pc-linux-gnu-g++ -c -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib64/qt5/mkspecs/linux-g++ -o youtubewindow.o youtubewindow.cpp
youtubewindow.cpp:41:10: fatal error: qmmp/fileinfo.h: No such file or directory
41 | #include <qmmp/fileinfo.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:1062: youtubewindow.o] Error 1
make[1]: Leaving directory '/tmp/portage/media-plugins/qmmp-plugin-youtube-0.3.2/work/qmmp-plugin-youtube-0.3.2/youtubeui'
make: *** [Makefile:73: sub-youtubeui-make_first] Error 2
make: *** Waiting for unfinished jobs....
x86_64-pc-linux-gnu-g++ -c -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/python3.6m -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o youtubedl.o youtubedl.cpp
In file included from youtubefactory.cpp:32:
youtubefactory.h:45:33: error: invalid covariant return type for ‘virtual const InputSourceProperties YoutubeFactory::properties() const’
45 | const InputSourceProperties properties() const;
| ^~~~~~~~~~
In file included from youtubefactory.h:29,
from youtubefactory.cpp:32:
/usr/include/qmmp/inputsourcefactory.h:62:35: note: overridden function is ‘virtual InputSourceProperties InputSourceFactory::properties() const’
62 | virtual InputSourceProperties properties() const = 0;
| ^~~~~~~~~~
youtubeinputsource.cpp: In member function ‘void YoutubeInputSource::fetchVideoMetaDataComplete(QHash<QString, QString>)’:
youtubeinputsource.cpp:57:27: error: ‘URL’ is not a member of ‘Qmmp’
57 | metaData.insert(Qmmp::URL, this->url());
| ^~~
youtubeinputsource.cpp:57:38: error: ‘class YoutubeInputSource’ has no member named ‘url’
57 | metaData.insert(Qmmp::URL, this->url());
| ^~~
make[1]: *** [Makefile:1035: youtubefactory.o] Error 1
make[1]: *** Waiting for unfinished jobs....
youtubestreamreader.cpp: In member function ‘void YoutubeStreamReader::checkBuffer()’:
youtubestreamreader.cpp:388:35: error: ‘URL’ is not a member of ‘Qmmp’
388 | metaData.insert(Qmmp::URL, m_url);
| ^~~
youtubestreamreader.cpp: In member function ‘void YoutubeStreamReader::parseICYMetaData(char*, qint64)’:
youtubestreamreader.cpp:477:35: error: ‘URL’ is not a member of ‘Qmmp’
477 | metaData.insert(Qmmp::URL, m_url);
| ^~~
make[1]: *** [Makefile:1041: youtubeinputsource.o] Error 1
make[1]: *** [Makefile:1046: youtubestreamreader.o] Error 1
make[1]: Leaving directory '/tmp/portage/media-plugins/qmmp-plugin-youtube-0.3.2/work/qmmp-plugin-youtube-0.3.2/youtube'
make: *** [Makefile:48: sub-youtube-make_first] Error 2```
src/youtubewindow.cpp:30:23: fatal error: QJsonObject: No such file or directory
compilation terminated.
Makefile:290: recipe for target 'youtubewindow.o' failed
make: *** [youtubewindow.o] Error 1
Removing the dependency of youtube-dl will simplify greatly the overhead caused by using it.
There are projects in C/C++ that accomplishes this:
An alternative would be compile to C the module of youtube-dl responsible to generate the URLs streams. Here is some info:
Other projects might be interesting have a look, but they use youtube-dl under the hood as well:
the error is in spanish , it says that "qmmpui/uihelper.h" is not found.
thanks in advance
Martin
Create a Personal Package Archives in Launchpad, suggested by MichaelTunnell in this comment.
I have openSUSE Tumbleweed with QMMP and qmmp-plugin-pack , qmmp-plugin-pack-youtube, but when I try to play a Youtube stream (like https://www.youtube.com/watch?v=-cABBWfRqms), it doesn't work, giving an error ("error" is showed in bottom left playlist corner) and this is the console output:
qmmp
QmmpPluginCache: loaded plugin libpulseaudio.so
QmmpUiPluginCache: loaded plugin libconverter.so
QmmpUiPluginCache: loaded plugin libfileops.so
QmmpUiPluginCache: loaded plugin libhistory.so
History: database initialization finished
QmmpUiPluginCache: loaded plugin libhotkey.so
QmmpUiPluginCache: loaded plugin libkdenotify.so
KdeNotify: DBus interfece created successfully.
QmmpUiPluginCache: loaded plugin liblyrics.so
QmmpUiPluginCache: loaded plugin libnotifier.so
QmmpUiPluginCache: loaded plugin libstreambrowser.so
QmmpUiPluginCache: loaded plugin libqsui.so
Visual: loaded plugin libanalyzer.so
Visual: loaded plugin libprojectm.so
QmmpPluginCache: loaded plugin libfilewriter.so
QmmpPluginCache: loaded plugin libhttp.so
QmmpPluginCache: loaded plugin libmms.so
QmmpPluginCache: loaded plugin libytb.so
InputSource: using https transport
YtbInputSource: starting youtube-dl...
StateHandler: Current state: Buffering; previous state: Stopped
"opus" "none" 49.677
"opus" "none" 66.143
"mp4a.40.2" "none" 129.514
"opus" "none" 130.624
"none" "avc1.4d400c" 0
"none" "av01.0.00M.08" 0
"none" "vp9" 0
"none" "av01.0.00M.08" 0
"none" "avc1.4d4015" 0
"none" "vp9" 0
"none" "avc1.4d401e" 0
"none" "av01.0.01M.08" 0
"none" "vp9" 0
"none" "av01.0.04M.08" 0
"none" "avc1.4d401e" 0
"none" "vp9" 0
"none" "av01.0.05M.08" 0
"none" "avc1.4d401f" 0
"none" "vp9" 0
"none" "av01.0.08M.08" 0
"none" "vp9" 0
"none" "avc1.640028" 0
"none" "av01.0.12M.08" 0
"none" "vp9" 0
"none" "av01.0.12M.08" 0
"none" "vp9" 0
"mp4a.40.2" "avc1.42001E" 0
YtbInputSource: selected stream: "opus" 130.624 kb/s
YtbInputSource: downloading stream...
YtbInputSource: ready
QmmpPluginCache: loaded plugin libaac.so
QmmpPluginCache: loaded plugin libcdaudio.so
QmmpPluginCache: loaded plugin libcue.so
QmmpPluginCache: loaded plugin libflac.so
QmmpPluginCache: loaded plugin libgme.so
QmmpPluginCache: loaded plugin libmodplug.so
QmmpPluginCache: loaded plugin libmpeg.so
QmmpPluginCache: loaded plugin libopus.so
QmmpPluginCache: loaded plugin libsid.so
QmmpPluginCache: loaded plugin libsndfile.so
QmmpPluginCache: loaded plugin libvorbis.so
QmmpPluginCache: loaded plugin libwavpack.so
QmmpPluginCache: loaded plugin libffmpeg.so
QmmpAudioEngine: unsupported file format
QmmpPluginCache: loaded plugin libffvideo.so
StateHandler: Current state: NormalError; previous state: Buffering
virtual void FFmpegEngine::stop()
StateHandler: Current state: Stopped; previous state: NormalError
How to fix this? Could it be I'm using a proxy? I can play icecast and shoutcast streams without issues ....
Thank you
The stream URL of the video is what that is being added to the QMMP's playlist. This causes two problems:
Window with comments of the video.
Other options related with the video can also be available.
Videos with full albums sometimes have track listing in comments, with timings associated.
Trying to package 0.3.2 for openSUSE Tumbleweed, couldn't make it work.
See gdb log.
How is it supposed to be installed?
The Python version is hard coded, so if you have are using a different version you need to edit the following file accordingly (the version used is python 3.6m
):
youtube/youtube.pro
:
INCLUDEPATH += /usr/include/python3.6m
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.