MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-GoogleDriveSlideShow

    Scheduled Pinned Locked Moved Entertainment
    37 Posts 10 Posters 16.8k Views 11 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C Offline
      clegallic
      last edited by

      MMM-GoogleDriveSlideShow allows you to display a slideshow of your photos stored in Google Drive.
      The MMM-GooglePhotos module allows to display photos stored in Google Photo, but as my photos are stored in Google Drive, I’ve created this module to create a slideshow of these photos on the Magic Mirror screen.

      The module is highly configurable :

      • Google Drive root folder
      • Theming
      • Number of folders to scan / photos to retrieve
      • Refresh interval of the slideshow and periodic scan of Google Drive
      • Integration with other modules notifications (PIR sensor for example to display next image)
      • Play mode (automatic, manual)

      Thanks to the MM team and all the community for their great work !

      Screenshots

      MMM-GoogleDriveSlideShow

      Download

      [card:clegallic/MMM-GoogleDriveSlideShow]

      S 1 Reply Last reply Reply Quote 1
      • S Offline
        sdetweil @clegallic
        last edited by

        @clegallic and if u get a suspend() call, u stop polling the server and stop attempting to display, right?

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        C 1 Reply Last reply Reply Quote 0
        • C Offline
          clegallic @sdetweil
          last edited by

          @sdetweil I wasn’t aware of the suspend()and resume() methods.

          I will update the module to implement these methods.

          Thank !

          1 Reply Last reply Reply Quote 0
          • C Offline
            clegallic
            last edited by

            It’s fixed now. Regards.

            1 Reply Last reply Reply Quote 0
            • C Offline
              cgethycx
              last edited by

              I am not having any luck installing this module. It is probably user error. I have MM2 up and running but when I paste the code and restart MM2 is tells ,e i need to create a config.js file.

              WARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/pi/MagicMirror/config/config.js:56
              				rootFolderId: my id is here,
              				                        ^
              
              SyntaxError: Invalid or unexpected token
                  at Module._compile (internal/modules/cjs/loader.js:722:23)
                  at Object.Module._extensions..js (internal/modules/cjs/loader.js:798:10)
                  at Module.load (internal/modules/cjs/loader.js:645:32)
                  at Function.Module._load (internal/modules/cjs/loader.js:560:12)
                  at Module.require (internal/modules/cjs/loader.js:685:19)
                  at require (internal/modules/cjs/helpers.js:16:16)
                  at loadConfig (/home/pi/MagicMirror/js/app.js:67:12)
                  at App.start (/home/pi/MagicMirror/js/app.js:202:3)
                  at Object.<anonymous> (/home/pi/MagicMirror/js/electron.js:126:7)
                  at Module._compile (internal/modules/cjs/loader.js:786:30)
              
              

              Do I need to add anything to the ID? I have tried adding quotes but that did not seem to work.

              thanks

              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @cgethycx
                last edited by

                @cgethycx said in MMM-GoogleDriveSlideShow:

                rootFolderId: my id is here,

                the rules for values in config.js

                whatever to the right of : if its numbers (1, or 21.25) or true/false it does not need quotes
                if it contains letters or spaces (this is a test, or 232130-1485i2jelnefkhwerh (apikey) it must be quoted,
                single or double doesn’t matter as long as start and end are the same.

                so, under the rules above
                this

                 rootFolderId: my id is here,
                

                should be at least

                 rootFolderId: 'my id is here',
                

                read this helpful post
                https://forum.magicmirror.builders/topic/4231/how-to-add-modules-for-absolute-beginners?_=1593192855243

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                C 1 Reply Last reply Reply Quote 0
                • C Offline
                  cgethycx @sdetweil
                  last edited by

                  @sdetweil thanks that helped somewhat. now MM2 loads but i just have a white box. Making progress though.

                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    clegallic
                    last edited by

                    Hi,

                    You have to configure the module with the ID of the Google Drive folder (rootFolderId) where your photos are stored.

                    You can check a complete answer here : https://github.com/clegallic/MMM-GoogleDriveSlideShow/issues/2#issuecomment-658843412

                    Regards,

                    Charles

                    1 Reply Last reply Reply Quote 0
                    • J Offline
                      Jupter1
                      last edited by

                      Hi,
                      first of all, I really like the ideaof the module. But I am currently stuck at creating the authentification with google and then the token. In step 7 of your readme, I have no “other” option to choose, so I chose “web application”. But in step 9 (using VNC to access the magic mirror), the authentification fails.

                      Do you have any idea what is my mistake?

                      1 Reply Last reply Reply Quote 0
                      • C Offline
                        clegallic
                        last edited by

                        Hi Jupter,

                        I don’t think you made a mistake, and that the “type” choice at step 7 has any importance.

                        Can you check that your credentials.json file looks like that ?

                        {"installed":{"client_id":"[something].apps.googleusercontent.com","project_id":"[something]","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"[something]","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}
                        

                        Can you send me the detail of the error while trying to authenticate at step 10 ?

                        Regards,

                        Charles

                        A 1 Reply Last reply Reply Quote 0
                        • J Offline
                          Jupter1
                          last edited by

                          Hi,
                          thank you for the overall looking of the JSON string. I checked it, it was not in this format. So I chose “Desktop” and now I got a credentials.json file that looks like your example. Then I tried again with a fresh module install from github. It still did not work.

                          Here is the debug-log, that I get from npm. I hope you can help me with that.

                          0 info it worked if it ends with ok
                          1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'token:generate' ]
                          2 info using npm@3.10.10
                          3 info using node@v6.14.2
                          4 verbose run-script [ 'pretoken:generate', 'token:generate', 'posttoken:generate' ]
                          5 info lifecycle mmm-googledriveslideshow@0.0.1~pretoken:generate: mmm-googledriveslideshow@0.0.1
                          6 silly lifecycle mmm-googledriveslideshow@0.0.1~pretoken:generate: no script for pretoken:generate, continuing
                          7 info lifecycle mmm-googledriveslideshow@0.0.1~token:generate: mmm-googledriveslideshow@0.0.1
                          8 verbose lifecycle mmm-googledriveslideshow@0.0.1~token:generate: unsafe-perm in lifecycle true
                          9 verbose lifecycle mmm-googledriveslideshow@0.0.1~token:generate: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/pi/MagicMirror/modules/MMM-GoogleDriveSlideShow/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
                          10 verbose lifecycle mmm-googledriveslideshow@0.0.1~token:generate: CWD: /home/pi/MagicMirror/modules/MMM-GoogleDriveSlideShow
                          11 silly lifecycle mmm-googledriveslideshow@0.0.1~token:generate: Args: [ '-c', 'node generate-auth-token.js' ]
                          12 silly lifecycle mmm-googledriveslideshow@0.0.1~token:generate: Returned: code: 1  signal: null
                          13 info lifecycle mmm-googledriveslideshow@0.0.1~token:generate: Failed to exec token:generate script
                          14 verbose stack Error: mmm-googledriveslideshow@0.0.1 token:generate: `node generate-auth-token.js`
                          14 verbose stack Exit status 1
                          14 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
                          14 verbose stack     at emitTwo (events.js:106:13)
                          14 verbose stack     at EventEmitter.emit (events.js:191:7)
                          14 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14)
                          14 verbose stack     at emitTwo (events.js:106:13)
                          14 verbose stack     at ChildProcess.emit (events.js:191:7)
                          14 verbose stack     at maybeClose (internal/child_process.js:920:16)
                          14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)
                          15 verbose pkgid mmm-googledriveslideshow@0.0.1
                          16 verbose cwd /home/pi/MagicMirror/modules/MMM-GoogleDriveSlideShow
                          17 error Linux 4.19.66-v7+
                          18 error argv "/usr/bin/node" "/usr/bin/npm" "run" "token:generate"
                          19 error node v6.14.2
                          20 error npm  v3.10.10
                          21 error code ELIFECYCLE
                          22 error mmm-googledriveslideshow@0.0.1 token:generate: `node generate-auth-token.js`
                          22 error Exit status 1
                          23 error Failed at the mmm-googledriveslideshow@0.0.1 token:generate script 'node generate-auth-token.js'.
                          23 error Make sure you have the latest version of node.js and npm installed.
                          23 error If you do, this is most likely a problem with the mmm-googledriveslideshow package,
                          23 error not with npm itself.
                          23 error Tell the author that this fails on your system:
                          23 error     node generate-auth-token.js
                          23 error You can get information on how to open an issue for this project with:
                          23 error     npm bugs mmm-googledriveslideshow
                          23 error Or if that isn't available, you can get their info via:
                          23 error     npm owner ls mmm-googledriveslideshow
                          23 error There is likely additional logging output above.
                          24 verbose exit [ 1, true ]
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • C Offline
                            clegallic
                            last edited by

                            Hi,

                            I can’t see any clue in your logs that can explain the issue.
                            My Node version is slightly more recent than yours (v10.17.0 when yours is v6.14.2), it may be a reason.

                            Can you try to run the npm run token:generatecommand through SSH ?
                            Do you have the same error ?

                            Regards,

                            Charles

                            J 1 Reply Last reply Reply Quote 0
                            • J Offline
                              Jupter1 @clegallic
                              last edited by

                              @clegallic
                              Thank you for your support. I will try to update node and see if that fixes the problem and/or if running it via ssh changes anything when I am home again next week.

                              1 Reply Last reply Reply Quote 0
                              • J Offline
                                Jupter1
                                last edited by

                                @clegallic
                                So I have tried to update node (v12.x) and voilà, now it works like a charm! Thank you for your support and this awsome module!

                                1 Reply Last reply Reply Quote 0
                                • C Offline
                                  clegallic
                                  last edited by

                                  I’m glad to hear that your problem is now resolved. Have fun with the module.

                                  Regards,

                                  Charles

                                  1 Reply Last reply Reply Quote 0
                                  • C Offline
                                    chen31
                                    last edited by

                                    Hello,
                                    First of all thank you, great module.
                                    I have a question regard the picture size, there is a way to automatic resize the picture to the max WxH that I config in the module setup?

                                    S 1 Reply Last reply Reply Quote 0
                                    • S Offline
                                      sdetweil @chen31
                                      last edited by

                                      @chen31 does the module readme give u any info on re/sizing image display?

                                      Sam

                                      How to add modules

                                      learning how to use browser developers window for css changes

                                      C 1 Reply Last reply Reply Quote 0
                                      • C Offline
                                        chen31 @sdetweil
                                        last edited by

                                        @sdetweil
                                        No.
                                        I have been over this a few times, except the max W and H, nothing.

                                        The max W/H cut the photo in my case.

                                        C 1 Reply Last reply Reply Quote 0
                                        • E Offline
                                          emrah_asl
                                          last edited by

                                          Hi, after deleted my photo from google drive , it still show even I change

                                          refreshDriveDelayInSeconds: 5000,
                                          refreshSlideShowIntervalInSeconds: 15,

                                          How can I clear cache ? any idea

                                          thank you for your helping.

                                          1 Reply Last reply Reply Quote 0
                                          • E Offline
                                            emrah_asl
                                            last edited by

                                            I changed code like below to fix my problem @sdetweil in node_helper.js

                                            getPhotos: async function() {
                                            
                                            		// Check if need reload
                                            		
                                            		// Get cache if not already loaded and cache file exists (after a restart for example)
                                            		if(!this.cache.created && this.cacheFileExists()){
                                            
                                            			let needReload = !this.cache || (new Date().getTime() - this.cache.created) / 1000 > this.config.refreshDriveDelayInSeconds;
                                            
                                            			// (re)create the cache if missing or expired
                                            			if(needReload){
                                            				this.log("No cache file, or expired, (re)creating it...");
                                            				await this.createCache();
                                            				this.cache.photos = await this.cache.photos.filter(photo=> !this.alreadySentPhotoIds.includes(photo.id));
                                            			} else
                                            
                                            			this.log("No memory cache, loading it from disk");
                                            			await this.loadCache();
                                            
                                            		} else this.createCache();
                                            
                                            		return this.cache.photos;
                                            	}
                                            
                                            S 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy