Versatile C++ game scraper: Skyscraper
-
@muldjord so just to confirm I understand:
For the scummvm platform, Skyscraper only tries to get the game title (long name) from the
scummvm.ini
file and always ignores the actual.svm
file name? -
@hhromic For the search based scraping modules, yes. For screenscraper it uses the filename directly as that's what they support for scummvm games. Checksumming the svm files clearly wouldn't make much sense.
-
i just tried searching manually on screenscraper for some of the filenames and then after with skyscraper using the query option, but it dosnt seem to get any hits even tho there is only one game returned from the search on the website.
a god example would be atlantis, as the only game that shows up on a screenscraper search is " Indiana Jones and the Fate of Atlantis" but skyscraper returns nothing for this game.
another would be gob1, which only returns "Gobliiins" on screenscraper, but skyscraper returns nothing.
iirc the lr-scummvm is still in experimental, so i am probably using the regular version, but i will check it out.
-
@Halvhjearne Some examples command lines would be helpful. I know it works, so I can't really help you without specific command that won't work for you. Then I can tell you what's going wrong.
-
/opt/retropie/supplementary/skyscraper/Skyscraper --unattend -g /home/pi/RetroPie/roms/scummvm -o /home/pi/RetroPie/roms/scummvm/media --relative -p scummvm -s screenscraper --refresh --query "atlantis" /home/pi/RetroPie/roms/scummvm/atlantis.svm
i also tried:
/opt/retropie/supplementary/skyscraper/Skyscraper --unattend -g /home/pi/RetroPie/roms/scummvm -o /home/pi/RetroPie/roms/scummvm/media --relative -p scummvm -s screenscraper --refresh --query "Indiana+Jones+Atlantis" /home/pi/RetroPie/roms/scummvm/atlantis.svm
or
/opt/retropie/supplementary/skyscraper/Skyscraper --unattend -g /home/pi/RetroPie/roms/scummvm -o /home/pi/RetroPie/roms/scummvm/media --relative -p scummvm -s screenscraper --refresh --query "gob1" /home/pi/RetroPie/roms/scummvm/gob1cd-us.svm
if i go to the screenscraper website and search for atlantis under scummvm games, the only one that comes up is the correct one (Indiana Jones And The Fate Of Atlantis) if i search for gob1, the only one that comes up is Gobliiins.
im pretty sure if you search for the shortname of any of the scummvm games on screenscraper, it will find the correct one every time.
-
@Halvhjearne It's because your query isn't complete. As per the documentation, screenscraper is not search name based in the same way as some of the other modules. You'd instead need
--query "romnom=atlantis.svm"
if that's one of the files that's on screenscraper (I haven't checked). But it's in the documentation. -
that worked ... but without the .svm part
edit:
for Gobliiins, but not for atlantisits a bit hit and miss, but it does finds a lot of the games this way
edit:
if i add .scummvm to the shortname, i belive it will find all my games ... except when the svm filename differs from "the real shortname", as an example Gobliiins shortname is "gob1" but the svm file is for some reason called gob1cd-us (probably cause its a later cd release). -
This post is deleted! -
Just a heads up to all Skyscraper users. From 3.0.0 "localdb" will change name entirely to "cache". It's another of the big changes in 3.0.0, which means that a lot of config variables will change name and the old ones will be removed. I realize this might seem inconvenient for current users, but this really is a change that needed to happen as the "localdb" name was rather confusing when I often used it in conjunction with "cache" since it's the same thing.
@mitu Is the localdb name used in the script? I can't remember. Please change it to "cache" instead if it is.
EDIT:
--purgedb vacuum
will become--cache vacuum
&--purgedb all
will become--cache purge:all
. Also, the~/.skyscraper/dbs
folder will become~/.skyscraper/cache
. This will automatically be renamed for users when they run Skyscraper the first time after updating to 3.0.0. -
i mananged to scrape all my games like this just using the shortnames, which in most cases is the same as the svm filename, except when its called something like kq6-cd or gob1cd-us.
in those cases i just used the real shortname from scummvm, alltho a game like the sci remake of larry i had to search for lsl1sci and for vga remake of quest for glory i searched for qfg1vga, which is ofcourse also the "real" shortnames for those games. -
@muldjord I think there's one place in the help section referring to LocalDB. Does this mean also
-s localdb
is now-s cache
?I'll have to fix the purge commands then, in the new version I used the
purgedb
commands instead of manually removing the cache data.But this last change will create an incompatibility with the old installations - if the script is updated without updating Skycraper script or vice-versa (script updated, but not Skyscraper).
-
@mitu Yes, it is now technically
-s cache
but just leave it out entirely (which is then compatible with both 2.x and 3.x) as it's not necessary. If-s cache
is left out it will default to create a game list. So creating a game list should always just beSkyscraper -p <platform>
without-s
.And yes, there will be incompatibility with the purge options, so we'd need to coordinate the release precisely somehow.
EDIT: I've added auto-migration from old config.ini format to new 3.0.0 format. I also auto-migrate the "dbs" folder to "cache" automatically. So you don't need to worry about this.
EDIT:
--refresh
is now--cache refresh
btw, so that should be changed aswell when we "flip the switch". I will still support the--refresh
option for a while, so we can just use that until we feel like most users updated to 3.0.0. -
@mitu said in Versatile C++ game scraper: Skyscraper:
@megaJekan Can you give some examples ?
I tried to rename ROM filenames (to match the internal ScreenScraper name), that solved the most of the issues. Sometimes underscores are the source of problem.
For SNES I can report that I still have problems with scrapping these ROMs:
Power Lode Runner
https://www.screenscraper.fr/gameinfos.php?plateforme=110&gameid=64853
(probably because Nintendo Power is written as platform instead of Super Nintendo)Super Tetris 2 + Bombliss
https://www.screenscraper.fr/gameinfos.php?plateforme=4&gameid=65158
(maybe '+' sign in the name is an issue)Radical Dreamers
https://www.screenscraper.fr/gameinfos.php?plateforme=107&gameid=108733
(Satellaview is written as platform instead of SNES)My ROMs have totally different md5, than in the ScreenScraper database. Then I have one more question. Can I add my own filenames and md5 checksums to screenscrapper.fr?
-
@megaJekan You can use the
--query
option to force md5 sums for any rom: https://github.com/muldjord/skyscraper/blob/master/docs/CLIHELP.md#--query-string -
@muldjord said in Versatile C++ game scraper: Skyscraper:
And yes, there will be incompatibility, so we'd need to coordinate the release precisely somehow.
Why not leave those as undocumented aliases for compatibility? Yes, it sucks, but sometimes you gotta do what you gotta do.
Either that or the RetroPie-Setup script should detect the exact Skyscraper version and adapt. Is this possible?
-
@Silent I think you answered that yourself. Because it sucks (and I can't "ghost" them, they will be visible and cause confusion). ;) And I do migrate old config.ini and folders. And it's to be expected that there are changes for major versions. Users should know that. I do keep the
--refresh
for a while though, so for those where it makes sense, I do actually keep them a couple months. And the change fromlocaldb
tocache
is compatible with both versions, as it should be simply left out for both which gives the same result. I think, in the end, this will turn out to be a non-issue when it comes to the script as we can work around it. -
Skyscraper 3.0.0 released: https://github.com/muldjord/skyscraper
- Game list creation and media compositing now only processed when leaving out the
-s
option - Now converts textual "\n" in descriptions to newlines. Useful when importing textual data (Thank you to "scthirouin" for requesting it)
- Added disk space check. Now aborts if disk has less than 200 megs left
- Updated "igdb" API til APIv3000. Key now global for all users
- Fixed ES game list release dates by adding "T000000" (Thank you to "michaelbaudino" for noticing)
- Added "subdirs" to config.ini (Thank you to "otherguy" for noticing it was missing)
- "--startat" and "--endat" now supports current workdir file paths
- Changed "allowExtension" config variable to "addExtensions"
- Changed "noHints" config variable to "hints"
- Changed "noBrackets" config variable to "brackets"
- Changed "noResize" config variable to "resize"
- Removed "--updatedb" cli option as it was deprecated (use "--cache refresh" instead)
- Removed "--nolocaldb" cli option as it is irrelevant after 3.0.0 usage changes
- Changed "--allowext" cli option to "--addext"
- Removed "localDb"/"cache" config sections and moved options to "main"
- Removed "userCreds" option from main and platform sections in config.ini. They should be set in scraping module section instead
- Removed "scraper" config.ini variable as it made no sense to ever set it like that
- Changed "startat" config.ini option to "startAt" to conform with style of other variables
- Changed "endat" config.ini option to "endAt" to conform with style of other variables
- Fixed "--relative" option when combined with roms in subdirs
- "--unattend" options now answers "y" to all "--cache purge:" prompts automatically
- Added "regionPrios" and "langPrios" variables to config.ini for main and platform sections
- Added auto-migration from old config.ini format to v3.0.0 format
- Added auto-migration from "dbs" folder to "cache" folder
- Optimized "--cache validate" A LOT
- Now converts ES game list entries to <folder> entries if a .cue or .m3u file is found in a subfolder. This causes the information and artwork to be shown when selecting the folder in ES rather than the .cue or .m3u file inside the subfolder. This is very useful for psx scraping
This release is a major release. It contains a couple of name convention changes that users will need to adjust to. The old
localdb
module is now simply called the game list generation mode and it enabled by leaving out the-s <MODULE>
option entirely. The-s
option is used for gathering data into the resource cache. When you've gathered the resources you need, you simply run it again for the platform without the-s
option to generate the game list.Some command line options have changed a bit. Most importantly, all things related to the resource cache (previously known as the localdb cache) have been converged into the new
--cache
option. Please check out the full documentation for all available options here: https://github.com/muldjord/skyscraper/blob/master/docs/CLIHELP.mdSome config.ini variables have changes names. And the
dbs
folder is now calledcache
. All of this will be auto-migrated when you start Skyscraper 3.0.0 for the first time.Some fixes also made it in. Most importantly the
--relative
option have been fixed for users who have roms in subfolders. And for users who scrape .cue or .m3u files in subfolders, Skyscraper will now autodetect this and convert the game list entry to a<folder>
entry instead of a<game>
entry. This means that the game data and artwork will show when selecting the folder in EmulationStation.The
igdb
module has been updated to APIv3000. As the old module violated the terms of use for the database, it now uses a global key and therefore no longer requires user credentials to be used. There is a big caveat to this though, as the key provided with Skyscraper has a limit of 10000 requests per month for the entire Skyscraper user base. For this reason the module has been limited to 5 rom scrapins per run. Supply file names on command line to use it or use the--startat
and--endat
options to narrow it down to 5 roms. The module also doesn't support artwork (neither did it before), as it doesn't distinguish between platform versions for each screenshot. So these had to be left out. But it is still suitable for grabbing textual data if you have a few hard-to-scrape roms.Lastly, the docs have been completely overhauled. I've documented all of the command line options and all of the available config.ini options. The scraping modules now have their own documentation and the same goes for language and region support. Please check all of the new and updated docs in the new
/docs
folder here: https://github.com/muldjord/skyscraper/tree/master/docsThank you to everyone who helped out with suggestions and well-documented bug reports. This new release also coincides with the newly updated RetroPie-Setup script (so be sure to update your RetroPie script prior to updating Skyscraper if you've installed Skyscraper from there) made by @mitu . Thanks for your work on this!
- Game list creation and media compositing now only processed when leaving out the
-
Congratulations on the new release. Thank you for the continuous work on Skyscraper ! Docs should be updated soon, following the updates in the wiki.
-
-
@muldjord said in Versatile C++ game scraper: Skyscraper:
Now converts ES game list entries to <folder> entries if a .cue or .m3u file is found in a subfolder. This causes the information and artwork to be shown when selecting the folder in ES rather than the .cue or .m3u file inside the subfolder. This is very useful for psx scraping
Can you give an example? This is the only changelog entry which I don't find too clear.
Congratulations on the release, too! Looking forward to scraping some PC titles with IGDB =)
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.