ruippeixotog / docker-google-musicmanager

Dockerfile for Google Music Manager
11 stars 10 forks source link

Music folder path does not exist #5

Closed mholtzscher closed 8 years ago

mholtzscher commented 9 years ago

On startup google music manager can't find music folder. Here is line from log file:

2015-10-01 18:19:15,120 Z ERROR TId 0x7f8c2b0d17c0 Music folder path does not exist: /root/Music [AppUtils.cpp:543 AppUtils::GetMyMusicFolder()]

Here is how i created started container:

docker run -dt -v /home/michael/youtube-downloader/music/:/music -v /home/michael/googlemusic-appdata:/appdata -e SERVER_NAME=dockerserver -e GOOGLE_USER= -e GOOGLE_PASS= ruippeixotog/google-musicmanager:dev

SicAlpha commented 9 years ago

I'm running into the same issue. I'm not using the DEV version.

If i use /root/music instead of /music on the container I no longer get errors in the log, but GMM isn't functioning as it doesn't upload any music.

ruippeixotog commented 9 years ago

Hi! I'm sorry for not replying to this issue earlier, I forgot it completely.

I tried to replicate the issue here, but I wasn't able to. I had a few issues myself a few months ago, but it was with the appdata volume, not with music. As the option -s /music is hardcoded to be passed to the google-musicmanager binary, I can't see how /root/Music is being used instead.

I have just updated both the "latest" and the "dev" images. I added support for a new environment variable, SPOOF_MAC, which controls whether the mac address is spoofed or not. Can you try running the image with mac spoofing disabled (--net=host -e SPOOF_MAC=false) and see if the problem persists?

SicAlpha commented 9 years ago

Thanks for the response!

Still getting this in the log file: 2015-11-10 01:19:34,621 Z ERROR TId 0x7f2b851687c0 Music folder path does not exist: /root/Music [AppUtils.cpp:543 AppUtils::GetMyMusicFolder()]

Command ran: sudo docker run -dt -v /home/media/music:/music -v /home/docker/appdata/GoogleMusicManager:/appdata -e SERVER_NAME=GMM -e GOOGLE_USER=XXXX -e GOOGLE_PASS=XXXX -e SPOOF_MAC=false ruippeixotog/google-musicmanager:dev

I have 2-factor auth buth I used an app-specific, generated code for the pass. That shouldn't be a problem though.

ruippeixotog commented 9 years ago

Well... I guess it'll be difficult for me to track where the problem is, as I ran a new container myself yesterday with the version I published:

sudo docker run -dt --name gmm --net=host -p 5900:5900 \
  -v /mnt/data/home/Music:/music \
  -v /home/home/google-musicmanager:/appdata \
  -e SERVER_NAME=home-srv -e SPOOF_MAC=false \
  ruippeixotog/google-musicmanager

And everything worked well... Music Manager being closed source and not documented at all doesn't help, too.

A few things you can try/check:

SicAlpha commented 9 years ago
sudo docker pull ruippeixotog/google-musicmanager

/home/docker/appdata/GoogleMusicManage was not empty, I deleted the contents

sudo docker run -dt --name gmm --net=host -v /home/media/music:/music \
 -v /home/docker/appdata/GoogleMusicManager:/appdata \
 -e SERVER_NAME=GoogleMusicManager -e SPOOF_MAC=false \
 -e GOOGLE_USER=XXXX \
 -e GOOGLE_PASS=XXXX ruippeixotog/google-musicmanager

Peer.db and google-musicmanager.log created in /home/docker/appdata/GoogleMusicManager google-musicmanager.log still has the following line: 2015-11-11 00:51:46,391 Z ERROR TId 0x7f37f85867c0 Music folder path does not exist: /root/Music [AppUtils.cpp:543 AppUtils::GetMyMusicFolder()]

XXXX@server:/home/docker/appdata/GoogleMusicManager$ sudo docker exec 573dc43c7792 ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.3  0.3  52136 13968 ?        Ss+  00:51   0:00 /usr/bin/python /usr/bin/supervisord
root         8  0.1  0.4 156432 16660 ?        Sl   00:51   0:00 /usr/bin/Xvfb :2 -screen 0 1024x768x16
root         9  0.1  0.1  84024  5288 ?        S    00:51   0:00 /usr/bin/x11vnc -display :2 -nopw -listen 0.0.0.0 -rfbport 5900 -xkb -forever
root        10  0.0  0.0  17972  1544 ?        S    00:51   0:00 /bin/bash /google-musicmanager.sh
root        21  2.5  0.9 1806812 33624 ?       SNl  00:51   0:04 /usr/bin/google-musicmanager -a XXXX -p XXXX -s /music -m GoogleMusicManager
root       205  0.0  0.0   4340   356 ?        S    00:54   0:00 sleep 1
root       206  0.0  0.0  15564  1140 ?        Rs   00:54   0:00 ps aux

The container is not killed, still running just fine, just not doing anything.

Is this possibly a permissions issue? The owner of /home/media/music is root, but docker runs as root so I'm guessing no...

Thank you very much for your efforts on this!

ruippeixotog commented 8 years ago

Hi!

After I analyzed more thoroughly my own logs, I see that every time I start the container it actually prints that message you mentioned:

2015-11-15 18:58:04,945 Z ERROR TId 0x7fb9995287c0 Music folder path does not exist: /root/Music [AppUtils.cpp:543 AppUtils::GetMyMusicFolder()]

However, in my case google-musicmanager doesn't seem to care about that, as a few lines below it starts using the expected /music folder:

2015-11-15 18:58:07,942 Z INFO TId 0x7fb98aa31700 Login successful [../Shared/AccountManager/AccountSession.cpp:571 AccountSession::OnLoggedIn()]
2015-11-15 18:58:08,050 Z INFO TId 0x7fb9995287c0 Logged in, starting peer [MainWindow.cpp:369 MainWindow::onLoginAttemptComplete()]
2015-11-15 18:58:08,050 Z INFO TId 0x7fb98b232700 PeerInterface::StartPeer() called [PeerInterface.cpp:61 PeerInterface::StartPeer()]
2015-11-15 18:58:08,050 Z INFO TId 0x7fb98b232700 PeerStart() [Core/PeerMain.cpp:403 ::PeerStart()]
2015-11-15 18:58:08,050 Z INFO TId 0x7fb98b232700 Screen Name: 780420982   -  Machine Identifier: -767108992 [Core/PeerMain.cpp:160 AppProcessor::Initialize()]
2015-11-15 18:58:08,122 Z INFO TId 0x7fb98b232700 Server Processor::Initialize() starts [Core/ServerProcessor.cpp:136 ServerProcessor::Initialize()]
2015-11-15 18:58:08,122 Z INFO TId 0x7fb98b232700 Local File Database initialized with scanInterval=30 and rootCheckInterval=5 and importInterval=30 and maxChangePerDelta=32 [LocalFileDatabase.cpp:3173 LocalFileDatabase::LocalFileDatabase()]
2015-11-15 18:58:08,122 Z INFO TId 0x7fb98b232700 Music file Sharing Type: 0 [LocalFileDatabase.cpp:3176 LocalFileDatabase::LocalFileDatabase()]
2015-11-15 18:58:08,122 Z INFO TId 0x7fb98b232700 Config music folders: 1 folders: [LocalFileDatabase.cpp:3181 LocalFileDatabase::LocalFileDatabase()]
2015-11-15 18:58:08,122 Z INFO TId 0x7fb98b232700   /music [LocalFileDatabase.cpp:3183 LocalFileDatabase::LocalFileDatabase()]

This is followed by a bunch of lines with FileSystemChangeMonitor::addWatchDirectory for every subdirectory I have in the mounted /music volume. Do you have that in your logs too?

SicAlpha commented 8 years ago

Sorry for the delay, had to go out of town for work... OK It appears that I'm not getting beyond the logon portion from what I gather looking at your log.

I'm using 2-factor auth, but I generated an app-specific code to use as the password so that I don't have to mess with the VNC as it's a headless server, shouldn't be a problem in theory. I'm using the first part of my email to logon, not including the @gmail.com portion, does that matter?

Below is everything in the log beyond the certificate info, nothing else gets appended:

2015-11-25 00:25:38,004 Z ERROR TId 0x7f4acf0937c0 Music folder path does not exist: /root/Music [AppUtils.cpp:543 AppUtils::GetMyMusicFolder()]
2015-11-25 00:25:38,046 Z INFO TId 0x7f4ac0395700 Login attempt #0 start state [../Shared/AccountManager/AccountSession.cpp:86 AccountSession::Login()]
2015-11-25 00:25:38,047 Z INFO TId 0x7f4ac0395700 Running login state 2 [../Shared/AccountManager/AccountSession.cpp:225 AccountSessionSignals::LoginResult AccountSession::pumpStateMachine()]
2015-11-25 00:25:38,047 Z INFO TId 0x7f4ac0395700 Refresh token result: 4 [../Shared/AccountManager/AccountSession.cpp:177 AccountSessionSignals::LoginResult AccountSession::performRefreshTokenExchange()]
2015-11-25 00:25:38,048 Z INFO TId 0x7f4ac0395700 Login attempt complete.  result (16) state (2) [../Shared/AccountManager/AccountSession.cpp:610 AccountSession::OnAttemptComplete()]
ruippeixotog commented 8 years ago

To be honest, I never tried to use google-musicmanager in the Docker using username and password - I just followed instruction on how to pass credentials to the music manager binary. My account has two-factor auth and I never thought of generating an app-specific password to use here.

Judging by your logs it seems that the problem could be indeed in the authentication, as the log lines I showed above happen immediately after your last line here:

2015-11-25 19:45:14,548 Z INFO TId 0x7fb98aa31700 Login attempt #0 start state [../Shared/AccountManager/AccountSession.cpp:86 AccountSession::Login()]
2015-11-25 19:45:14,558 Z INFO TId 0x7fb98aa31700 Running login state 2 [../Shared/AccountManager/AccountSession.cpp:225 AccountSessionSignals::LoginResult AccountSession::pumpStateMachine()]
2015-11-25 19:45:15,154 Z INFO TId 0x7fb98aa31700 Refresh token result: 0 [../Shared/AccountManager/AccountSession.cpp:177 AccountSessionSignals::LoginResult AccountSession::performRefreshTokenExchange()]
2015-11-25 19:45:15,154 Z INFO TId 0x7fb98aa31700 Running login state 3 [../Shared/AccountManager/AccountSession.cpp:225 AccountSessionSignals::LoginResult AccountSession::pumpStateMachine()]
2015-11-25 19:45:15,718 Z INFO TId 0x7fb98aa31700 Running login state 5 [../Shared/AccountManager/AccountSession.cpp:225 AccountSessionSignals::LoginResult AccountSession::pumpStateMachine()]
2015-11-25 19:45:16,139 Z INFO TId 0x7fb98aa31700 Using uploader id 00:21:5A:5F:F3:60 [../Shared/AccountManager/AccountSession.cpp:333 AccountSessionSignals::LoginResult AccountSession::performUpAuth()]
2015-11-25 19:45:16,139 Z INFO TId 0x7fb98aa31700 Running login state 6 [../Shared/AccountManager/AccountSession.cpp:225 AccountSessionSignals::LoginResult AccountSession::pumpStateMachine()]
2015-11-25 19:45:16,720 Z INFO TId 0x7fb98aa31700 Login attempt complete.  result (-1) state (7) [../Shared/AccountManager/AccountSession.cpp:610 AccountSession::OnAttemptComplete()]
2015-11-25 19:45:16,720 Z INFO TId 0x7fb98aa31700 Login successful [../Shared/AccountManager/AccountSession.cpp:571 AccountSession::OnLoggedIn()]
2015-11-25 19:45:16,828 Z INFO TId 0x7fb9995287c0 Logged in, starting peer [MainWindow.cpp:369 MainWindow::onLoginAttemptComplete()]

If I had to guess, your username should have "@gmail.com" at the end, as not all accounts are from gmail (Websites autocomplete that part if no email is found, but I believe it is a client-side usability improvement only).

This image launches a VNC server regardless of the authentication method used, so you really only need a VNC client. This can be useful to debug your problem and possibly testing logging in from there. As all X and VNC dependencies are containerized inside Docker you don't need to worry with polluting your headless server with useless packages :)

SicAlpha commented 8 years ago

OK making progress. Decided to use the VNC option for authentication.

If I run this:

sudo docker run -dt --name gmm -p 5900:5900 \
 -v /home/media/music:/music \
 -v /home/docker/appdata/GoogleMusicManager:/appdata \
 -e SERVER_NAME=media_server \
 ruippeixotog/google-musicmanager

It runs, I can connect to VNC and get the GMM logon screen. But when I try to logon it says two other computers have already logged on and wont continue.

If it try the mac spoofing off:

sudo docker run -dt --name gmm --net=host -p 5900:5900 \
 -v /home/media/music:/music \
 -v /home/docker/appdata/GoogleMusicManager:/appdata \
 -e SERVER_NAME=media_server -e SPOOF_MAC=false \
 ruippeixotog/google-musicmanager

I can connect to the VNC but the screen is just black, GMM logon screen never appears.

UPDATE I think I've got it. I deleted the container, deleted the appdata folder, and tried the second command again for no mac spoofing. I got the logon prompt this time and it appears to have been successful. It's parsing through my music now according to the log. I'll keep you posted on whether it's uploading :D

UPDATE 2 It's uploading! Though it's taking its sweet time about it... Thanks for your patience, assistance and work putting this together!

ruippeixotog commented 8 years ago

I'm glad you got it working! :) It sure has its difficulties, as the application is not designed to run on a headless server at all and its documentation is non-existent. You should not have any more problems from now on, as long as you keep the appdata directory.