RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Versatile C++ game scraper: Skyscraper

    Scheduled Pinned Locked Moved Ideas and Development
    skyscraperscrapergamelist.xmlscrapinggithub
    1.6k Posts 113 Posters 1.6m Views
    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.
    • muldjordM
      muldjord @Obi-Wan
      last edited by

      @obi-wan Please redownload it from the same link. It was missing an OpenSSL dll that I've now included. I've tested it on my Windows dev machine and it works now. Let me know if it works for you too.

      O 1 Reply Last reply Reply Quote 4
      • O
        Obi-Wan @muldjord
        last edited by

        @muldjord Thanks a bunch! :) I was thrown off my emulator project for a while, but I'm back at it and 3.6.7 seems to work perfectly well now! Appreciate it, especially because the Windows version is not really supported!

        muldjordM 1 Reply Last reply Reply Quote 1
        • muldjordM
          muldjord @Obi-Wan
          last edited by

          @obi-wan Yeah, I don't really support it beyond releasing it. But I at least want it to work, so thanks for reporting that. I don't really use it myself so... :D

          1 Reply Last reply Reply Quote 1
          • muldjordM
            muldjord
            last edited by

            Quick show of hands: Would anyone be against me removing the "Simple mode" from Skyscraper? The questionnaire mode that it runs if you run Skyscraper without command line parameters. I haven't updated it in ages and it seems that it's currently broken. I never liked it, and I kind of want to remove it completely.

            Given that the RetroPie Skyscraper script is much better I feel like "Simple mode" is deprecated.

            ClydeC 1 Reply Last reply Reply Quote 4
            • ClydeC
              Clyde @muldjord
              last edited by

              @muldjord Since I never noticed it until you mentioned it now, I don't mind. 😉

              1 Reply Last reply Reply Quote 1
              • muldjordM
                muldjord
                last edited by muldjord

                Thanks guys. I will remove it in the next release, unless someone stops by within the next week with compelling arguments to keep it.

                1 Reply Last reply Reply Quote 0
                • johnodonJ
                  johnodon
                  last edited by

                  I've been reading through the docs and haven't found my answer (or if it is possible)...

                  I like to save all of my media to a single folder using file suffixes (like sselph scraper does). For example in /roms/arcade/images/ I would have:

                  zaxxon-image.png
                  zaxxon-video.mp4
                  zaxxon-marquee.png
                  zaxxon-launching.png
                  

                  Is this possible with Skyscraper?

                  TIA.

                  John

                  muldjordM 1 Reply Last reply Reply Quote 0
                  • muldjordM
                    muldjord @johnodon
                    last edited by

                    @johnodon Hi John, You can change the output folder with the option described here, but not the names of the media files themselves.

                    1 Reply Last reply Reply Quote 0
                    • mituM mitu referenced this topic on
                    • T
                      TomFury
                      last edited by

                      Hi! First things first - I'm impressed with your work @muldjord and I really like Skyscraper a lot! I was looking for a way to handle one specific use case and was advised to post in this thread by @mitu (thank you). I would like to propose a feature suggestion for Skyscraper. I detailed my use case in this thread.

                      The ghist of it is a feature where one could provide a list of files that Skyscraper should avoid scraping completely, i.e.. some kind of "unallowed list". This is based on the fact that there are roms in the collection I know will not render any results, and I would like to avoid hammering the online services for these "known failures".

                      I realize after the replies in the thread that one could use the --excludefiles option. The caveat there is that one would have to assemble (and maintain!) a list of files manually into a string that is passed to the option (or, as also suggested in the thread - change the file names to match a certain pattern for files one would like to avoid).

                      It would be really neat if one could for example pass a "skipped-<platform>-<source>.txt"-list to Skyscraper when instructing it to scrape for a platform. Perhaps the --excludefiles option could be extended to also take such a file as input?

                      muldjordM 1 Reply Last reply Reply Quote 0
                      • muldjordM
                        muldjord @TomFury
                        last edited by

                        @tomfury Hi, thanks for the suggestion. I've implemented this in my local development version now. I just need to test it some more, then I will release it.

                        It will work by using either the CLI parameter --excludefrom FILENAME or by setting excludeFrom="FILENAME" in the config.ini [main] section or a [PLATFORM] section.

                        The FILENAME must contain a list of filenames with full path.

                        I will post here when it is ready.

                        1 Reply Last reply Reply Quote 1
                        • muldjordM
                          muldjord
                          last edited by muldjord

                          Skyscraper 3.7.0 out now: https://github.com/muldjord/skyscraper

                          • Moved '--fromfile' option to '--includefrom'. '--fromfile' still works, but is considered deprecated
                          • Moved '--includefiles' option to '--includepattern'. '--includefiles' still works, but is considered deprecated
                          • Moved '--excludefiles' option to '--excludepattern'. '--excludefiles' still works, but is considered deprecated
                          • Added '--excludefrom' option similar to '--includefrom' only the opposite (Thank you to user 'TomFury' for suggesting this)
                          • Skyscraper will now ignore any subfolders within the input folder where a file called '.skyscraperignore' is found (Thank you to user 'sromeroi' for suggesting this)
                          • Added platform 'easyrpg', only usable using the 'screenscraper' scraping module (Thank you to user 'zerojay' for suggesting this)

                          Documentation for the CLI versions of the new options is here. config.ini documenation is here.

                          If you run into issues, please let me know. Thanks! :)

                          T S ClydeC 3 Replies Last reply Reply Quote 4
                          • T
                            TomFury @muldjord
                            last edited by

                            @muldjord Thank you so much! This is a great add-on. I have tested it on version 3.7.2 and it looks like it works! I kind of had the expectation that one could use the generated "skip-list" as an input, but I think using full path works just as great (and also provide more control).

                            For my use case the only missing step now is to be able to convert the skipped-<platform>-<scraper>.txt files from a scraping session to an input file compatible with the --excludefrom flag (i.e. for every row change:

                            '<rom name>', No returned matches
                            

                            ... to:

                            /full/path/to/<rom name>.<extension>
                            

                            ... and populate my "final" list for excluded files. Perhaps that would be too much to ask for Skyscraper to handle. My use case might be a bit odd, and in that case it's probably better to create an external adapter-script that will do that kind of conversion for me. I mean, I guess most users want to have total control of a list which is used as input instead of relying on a list of unsuccessful scrapes (which might have failed for many reasons; not only that the rom is missing from the database).

                            1 Reply Last reply Reply Quote 0
                            • S
                              sleve_mcdichael @muldjord
                              last edited by sleve_mcdichael

                              @muldjord said in Versatile C++ game scraper: Skyscraper:

                              • Moved '--fromfile' option to '--includefrom'. '--fromfile' still works, but is considered deprecated

                              When I use this option with a relative path, no matter where from, it is expanded relative to ~/.skyscraper and not to {cwd}. This makes it impossible to use tab-completion unless I: 1) use absolute path, or 2) pushd or cd into the .skyscraper dir first.

                              (It's not new, --fromfile used to do this also.)

                              Is this by design?

                              muldjordM 1 Reply Last reply Reply Quote 0
                              • muldjordM
                                muldjord @sleve_mcdichael
                                last edited by muldjord

                                @sleve_mcdichael said in Versatile C++ game scraper: Skyscraper:

                                Is this by design?

                                Well, no, not really. And I can see how that is confusing. I'll change it.

                                @TomFury That was actually the idea and I thought I checked the skipped files, but I probably checked the report files instead. I think I will change the skipped files to include filenames instead and cross my fingers people won't miss the old format.

                                EDIT: 3.7.4 now out with both of these things fixed.

                                T 1 Reply Last reply Reply Quote 2
                                • T
                                  TomFury @muldjord
                                  last edited by

                                  @muldjord said in Versatile C++ game scraper: Skyscraper:

                                  @TomFury That was actually the idea and I thought I checked the skipped files, but I probably checked the report files instead. I think I will change the skipped files to include filenames instead and cross my fingers people won't miss the old format.

                                  EDIT: 3.7.4 now out with both of these things fixed.

                                  Awesome! I will give it a try the nearest couple of days :-).

                                  1 Reply Last reply Reply Quote 0
                                  • ClydeC
                                    Clyde @muldjord
                                    last edited by

                                    @muldjord Thanks for the update! It's great that you still find the time to work on this. 👍

                                    1 Reply Last reply Reply Quote 2
                                    • muldjordM
                                      muldjord
                                      last edited by

                                      Decided to remove the code that replaces : in the Pegasus command string. I can't remember why I put it in there, but things seem to work without it. So maybe I put it in there before I added the newer Pegasus parser (which seem to work with the : in place).

                                      So 3.7.5 released where : is now allows in Pegasus launch command. It's been requested a few times.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        sleve_mcdichael
                                        last edited by sleve_mcdichael

                                        @muldjord most of the time I am scraping only new titles, and I want videos, so I have videos="true" enabled in my config.ini so I don't have to type the flag every time.

                                        Let's say I want to re-scrape the screenshots for a bunch of existing titles, so I want to disable videos only temporarily, for one run only. I see I can use --flags nocovers,nowheels,nomarquees to skip those assets but I don't see a way to negate the videos without editing my config. Is there something I've overlooked?

                                        [Edit]: ...also, is there a way to output something besides the "screenshot" to the gamelist <image> tag? If I just want the box art, for example. I guess I can output to the screenshot "type" with the cover "resource":

                                        <output type="screenshot" resource="cover"/>
                                        

                                        Is this the right/only way?

                                        muldjordM 1 Reply Last reply Reply Quote 0
                                        • muldjordM
                                          muldjord @sleve_mcdichael
                                          last edited by

                                          @sleve_mcdichael

                                          but I don't see a way to negate the videos without editing my config. Is there something I've overlooked?

                                          You can set videos="true" for all individual platforms that you want to use videos. And then not set it for the ones you want to use artwork.

                                          Example:

                                          [nes]
                                          videos="true"
                                          

                                          also, is there a way to output something besides the "screenshot" to the gamelist <image> tag?

                                          Yes, you can set any output node in artwork.xml to substitue an export type to use a different artwork source.

                                          Example:

                                          <output type="screenshot" resource="wheel" mpixels="0.1" width="640" height="400">
                                          

                                          The above will export a screenshot but use the wheel artwork as source for it.

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            sleve_mcdichael @muldjord
                                            last edited by

                                            @muldjord said in Versatile C++ game scraper: Skyscraper:

                                            @sleve_mcdichael

                                            You can set videos="true" for all individual platforms that you want to use videos. And then not set it for the ones you want to use artwork.

                                            It's not specific to a certain platform. Here's my use case:

                                            I have both images and videos for each title; the video plays in the gamelist and the image is shown on launch.

                                            Yesterday, I wanted to scrape videos. Tomorrow, I will want to scrape videos. In the future when I add new games, I will want to scrape videos.

                                            Today, I want to re-scrape some of my existing titles to get a better screenshot for the image. But I don't need to re-scrape all the videos or other image assets again, I just want the screenshots.

                                            To do that, I edit my config.xml, disable videos, and then save the xml. Then I scrape with --cache refresh --flags nocovers,nowheels,nomarquees to re-download the screenshots (and textual datas) only, then once I have all the new screenshots that I want, I edit the xml again and re-enable the videos so that when I add more new games again tomorrow, they have videos.

                                            Granted, this isn't something I'll need to do very often, it just would be convenient-er if there was a novideos flag as well instead of editing the config.xml twice.

                                            Yes, you can set any output node in artwork.xml to substitue an export type to use a different artwork source.

                                            Example:

                                            <output type="screenshot" resource="wheel" mpixels="0.1" width="640" height="400">
                                            

                                            The above will export a screenshot but use the wheel artwork as source for it.

                                            Well, that was my question. It has to be called "screenshot", then? So I can't, for example, output a cover and a screenshot, and use the one called 'cover' in the gamelist.

                                            muldjordM 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.