Code Monkey home page Code Monkey logo

qmmp-plugin-youtube's People

Contributors

rigon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

qmmp-plugin-youtube's Issues

qmmp-plugin-youtube needs to be updated to qmmp's API 1.3

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```

Make in linux mint

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

youtube-dl dependency removal

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:

problem compiling in centos 7

make[1]: se ingresa al directorio `/tmp/qmmp-plugin-youtube/youtube'
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I/usr/include/python3.6m -I. -o youtubefactory.o youtubefactory.cpp
youtubefactory.cpp:27:29: error fatal: qmmpui/uihelper.h: No existe el fichero o el directorio
#include <qmmpui/uihelper.h>

the error is in spanish , it says that "qmmpui/uihelper.h" is not found.

thanks in advance
Martin

Preferences window

Currently there is an implementation of the layout of a Preferences window, but it is still not implemented.

Here is a screenshot:

screenshot

Error trying to play Youtube streaming (using gmmp-plugin-pack-youtube)

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

Add videoID instead stream URL to the playlist

The stream URL of the video is what that is being added to the QMMP's playlist. This causes two problems:

  • the playlist entry is replaced by the URL, making it incomprehensible
  • the URL becomes invalid after some time

Tracks from comments

Videos with full albums sometimes have track listing in comments, with timings associated.

Crash on play

Trying to package 0.3.2 for openSUSE Tumbleweed, couldn't make it work.

See gdb log.

Hard coded Python version

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
    

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.