bram-dingelstad / gmplayer Goto Github PK
View Code? Open in Web Editor NEWA CLI music player with Google Play Music as a source!
Home Page: https://npmjs.org/gmplayer
License: Other
A CLI music player with Google Play Music as a source!
Home Page: https://npmjs.org/gmplayer
License: Other
It just exists when you try to use it.
Seems to be that cli.main() is missing options.downloadonly, when I tried adding it in awhile back it didn't work.
I'm thinking that given the fact that the errors concern files missing (and indeed they are), the issue is probably not actually an error with ffmpeg
. I find this especially possible given that I couldn't reproduce it. If I deleted the folder containing the downloaded files and tried again, I got different results. First time, just one song. Second time, a different song, but just one. Third time, the whole thing with no errors.
Could this be some sort of timing issue where processing is happening before downloads complete?
Downloading Mephisto Walz - New Apostles
Error: ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/i386-linux-gnu --shlibdir=/usr/lib/i386-linux-gnu --incdir=/usr/include/i386-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
/home/wxl/Music/gmplayer/New Apostles/The Folie - Mephisto Walz.mp3: No such file or directory
at ChildProcess.<anonymous> (/usr/local/lib/node_modules/gmplayer/node_modules/ffmetadata/index.js:85:16)
at ChildProcess.emit (events.js:180:13)
at maybeClose (internal/child_process.js:936:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
Error: ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/i386-linux-gnu --shlibdir=/usr/lib/i386-linux-gnu --incdir=/usr/include/i386-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
/home/wxl/Music/gmplayer/New Apostles/Goodbye Innocence - Mephisto Walz.mp3: No such file or directory
at ChildProcess.<anonymous> (/usr/local/lib/node_modules/gmplayer/node_modules/ffmetadata/index.js:85:16)
at ChildProcess.emit (events.js:180:13)
at maybeClose (internal/child_process.js:936:16)
at Socket.stream.socket.on (internal/child_process.js:353:11)
at Socket.emit (events.js:180:13)
at Pipe._handle.close [as _onclose] (net.js:541:12)
Error: ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/i386-linux-gnu --shlibdir=/usr/lib/i386-linux-gnu --incdir=/usr/include/i386-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
/home/wxl/Music/gmplayer/New Apostles/When Day Falls - Mephisto Walz.mp3: No such file or directory
at ChildProcess.<anonymous> (/usr/local/lib/node_modules/gmplayer/node_modules/ffmetadata/index.js:85:16)
at ChildProcess.emit (events.js:180:13)
at maybeClose (internal/child_process.js:936:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
Do you have any ideas how to get gmplayer to scrobble? one would be using zomg which is based on mpg123, but it doesn't support playlists.
Currently, trying to play a song that contains a /
in the name will crash gmplayer.
Steps to reproduce:
ฮป ./gmplayer -s The Beyond flying lotus
Looking up requested song -
[0] Your Potential//The Beyond (feat. Niki Randa) - Flying Lotus
What song do you want to play? #0
fs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open '/Users/nickj/Music/Your Potential/The Beyond (feat. Niki Randa) - Flying Lotus.mp3'
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.writeFileSync (fs.js:1155:15)
at IncomingMessage.<anonymous> (/Users/nickj/Projects/gmplayer/app.js:203:14)
at emitOne (events.js:77:13)
at IncomingMessage.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at IncomingMessage.Readable.push (_stream_readable.js:110:10)
at HTTPParser.parserOnBody (_http_common.js:109:22)
at TLSSocket.socketOnData (_http_client.js:305:20)
We should probably sanitize the filename before saving. Maybe https://www.npmjs.com/package/sanitize-filename? (seems like it might be overkill)
Stepped onto a small bug today. Must've overlooked it testing out the album capabilities. Looks like when looking for songs, sometimes the .filter
function is undefined or something. Think you can fix it @Widdershin ?
Currently, all tracks are stored in the root level music directory.
This will quickly become messy, especially with the introduction of album/playlist support.
I think we should create a directory in the music root with a name of gmplayer
, and then store all downloaded tracks in there in the format of ~/Music/gmplayer/<artist>/<album>/<tracknumber> - <title>.mp3
.
Note: I plan on implementing this, but I figured I would make an issue first to see what you think ๐
When I download the album Narrow Stairs by Death Cab for Cutie using gmplayer
, the second track I Will Possess Your Heart comes out corrupt (all the rest are fine.) I.E. it plays, but has peculiar skips throughout the whole track. I tried manually downloading the track using the same URL playmusic
provides to gmplayer
, and it plays fine using mplayer
. The only thing I can think of that distinguishes this track from other tracks is the length/size.
Even weirder is that the file downloaded by gmplayer
is larger (31,104 bytes) than the one I downloaded manually (19,764 bytes).
So my questions for you, @96AA48, are:
Whenever I try to download some albums or songs I get the error:
ERROR: Error: Unable to get stream urlError: 404 error from server
I just updated with npm install gmplayer -g
and now I get this error, though I haven't changed my .gmplayerrc
file nor my google authentication settings.
ERROR: Error: Unable to create oauth tokenError: You must provide either an email address and password, or a token
ERROR: Error: Unable to create oauth tokenError: 403 error from server
I reading this thread, which didn't help. I don't have 2-step authentication going.
This is really an mplayer
issue but if you pass -ao alsa
as gmplayer
does, playback stops at the end of each track as it waits for input. I'm not sure if this is the same with the coreaudio
driver, but my guess is that it is. I would suggest removing the switch altogether. mplayer
tends to be fairly smart in figuring out how to play any given file, unless that file is particularly corrupt.
BTW: thanks. The Google Music webapp is a gluttonous resource-hungry waste.
Just updated and this is all I get when I run gmp
cli.main((args, options) => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
Not sure what's up. My internet connection is fine.
/home/pi$ chmod 600 .gmplayerrc
[pi@raspberrypi]
/home/pi$ gmp -a Echolyn
Looking up requested album \
[0] Echolyn - Echolyn
[1] I Heard You Listening - Echolyn
[2] Cowboy Poems Free - Echolyn
[3] A Little Nonsense: Now and Then - echolyn
[4] Suffocating the Bloom - echolyn
[5] as the world - echolyn
[6] The End is Beautiful - echolyn
[7] mei - echolyn
[8] Orange-ish Blue - echolyn / Brett Kull
[9] This is My Halo - echolyn / Ray Weston
[10] finneus gauge: one inch of the fall - echolyn / Chris Buzby
What album do you want to play? #7
Downloading echolyn - mei
[ ] 0%
It hangs indefinitely...at least 20 minutes with no change until I ^c
.
Getting this error when trying to run any instruction. Probably due to 2 factor authentication.
Would it be possible to download and play songs from a station? Would be great. Thanks for everything!
Doesn't seem to work with 2 factor authentication.
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.