How To Increase Your Chances Of A Successful Scrape Using Skyscraper

How To Increase Your Chances Of A Successful Scrape Using Skyscraper

Skyscraper is a fantastic scraping programme for RetroPie, but let’s be honest, using the basic setup, you are more often than not kicked out of the scraping process half way through. There are a number of potential reasons for your scrape being unsuccessful, such as a drop or time out in your internet connection, however by far the most likely reason is that you have not signed up to the ScreenScraper website and added your user details to Skyscraper config file.

In the following article we will walk you through the in’s and out’s of signing up to ScreenScraper as well as a few other pitfalls that may disrupt your scraping experience. One thing to note is that this article assumes that you use ScreeScraper as your scraping database when performing a scrape with Skyscraper. This is recommended as it is by far the most diverse and complete games metadata and media resource on offer at this time. Read on and all your scraping headaches should disappear.

How To Register On The ScreenScraper Website

If you attempt to scrape your ROMs using just the basic settings in Skyscraper, you will invariably notice that you get kicked out of the process midway through and you see a message stating something along the lines that the ScreenScraper service has stopped running as the server is overloaded and priority is given to registered users.

Skyscraper closed to unregistered users
Skyscraper will kick out unregistered users if their servers become overloaded

The reason behind this is that screenscraper.fr (the source from which you are pulling your assets) is by far the best repository for ROM images, video clips, marquees etc. This being the case the sites resources are in high demand, which consistently puts strain on the site’s servers. The more visitors a site receives, the harder it has to work. These servers then have to work even harder if the visitors are downloading assets from the server. It is easy to find out if the ScreenScraper server is under stress. The ScreenScraper site actually displays the server loads they are currently experiencing at the top of their homepage so you can keep up to date on it 24/7.

ScreanScraper server loads
You can see how hard the SceenScraper servers are working by visiting their home page

So, one way to avoid, or at least reduce your chances of you being kicked out of the scraping process halfway through, is to sign up for a free account with ScreenScraper and then enter your login details into the Skyscraper config.ini file in RetroPie. ScreenScraper gives preferential scraping privileges to anyone who is a member of their site. Even more privileges are given to members who contribute to ScreenScraper through Patreon. Extra privileges include an increased number of scrape allocations per day (typically one ROM requires roughly 4 requests to acquire all available metadata and media) as well as granting users more streams through which to download the assets. This helps increase the speed of the scraping process by essentially allowing you to perform multiple scrapes simultaneously. Below is a table which illustrates which privileges are granted to each level. Also, you should bear in mind that each contribution level has priority over the contribution levels beneath them.

ContributionScrape requests per dayNo. of scraping threads availableStatus
Not registered10,0001None
Registered20,0001None
1€ Donation per month50,0001Bronze Financial Contributor
2€ Donation per month50,0001Silver Financial Contributor
5€ Donation per month50,0002Gold Financial Contributor
10€ Donation per month50,0005Carbon Financial Contributor
Different privileges are awarded to different levels on contribution to ScreenScraper

So, how do you go about signing up to ScreenScraper? First off, as mentioned, you need to sign up for an account on the ScreenScraper website. This may sound like a straightforward process however there are some elements of the site that are a bit misleading. You can’t register on the home page but this is not made very clear on the site (I tried registering my details a number of times using the form at the top right of the home page which is actually the sign in form). The page you need to visit in order to sign up is screenscraper.fr/membership. On this page you then need to scroll down below the fold until you see the ‘Sign up on ScreenScraper’ box.

ScreenScraper registration box
The ScreenScraper signup form can be found at the bottom of the registration page

Enter your details into the form and click send to register. You will then be sent an activation email where you will need to copy and paste a link into your browser (apparently ScreenScaper haven’t yet discovered hyperlinks). That’s this step completed. Next you will need to get your hands dirty with a small amount of coding, but don’t worry. We’ll walk you through every step of the way.

Adding Your ScreenScraper Info To Skyscraper

We’re done with websites for the time being. Now it’s time to return to your Raspberry Pi. In RetroPie you will need to hit F4 in order to access the RetroPie terminal. this is the command line of RetroPie where you can access many features not available through EmulationStation. Once in the terminal enter the line of code below to open the Skyscraper config.ini file in the nano text editor.

nano ~/.skyscraper/config.ini

Once in the editor use the down arrow key on your keyboard to move the cursor to the bottom of the file. Press the Enter key to add an extra line and enter your user credentials exactly as illustrated below where USER is your nickname and PASSWORD is obviously your password:

[screenscraper]
userCreds="USER:PASSWORD"

N.B. Make sure you enter your nickname and not your email address as this will not work. I fell into this trap and it took me several hours to work out why Skyscraper was failing to connect to my account.

That’s all you need to do. Exit the nano editor by pressing Ctrl+x, answer the save question with y, and press Enter to confirm the file name. You will then be transferred back to the RetroPie terminal.

In order to confirm that your changes to the Skyscraper config.ini file have been saved, in the RetroPie terminal type out the following command:

tail ~/.skyscraper/config.ini

This will display the last 10 lines of the config file, allowing you to double check the changes you have made.

At this point, you are ready to scrape your ROMs again, with the added security that your scrape now has a better chance of succeeding.

How To Avoid Cache Overflow When Scraping

If you have a large number of ROMs to scrape (I’m talking in the region of several thousand plus) it is very possible that at some stage during your scraping process you will notice that you are seeing an error message similar to that below and your ROMs are no longer being scraped, although it would appear that the process is still ongoing.

Error message – Warning! Couldn’t add resource to cache. Have you run out of disk space?

Skyscraper cache full
Scraping lots of ROMs can cause your cache folder to fill up quickly

The reason behind this is that the available disk space used for storing cached media has been exhausted. What’s that? You say that you store your ROMs on a mammoth sized external hard drive? Well that doesn’t matter. By default the cache files are stored on the Raspberry Pi’s user home directory and not with the ROMs, meaning the cache storage folder resides on that tiny micro SD card that you only intended for the RetroPie operating software.

Fear not! There is a solution to this issue, and if you are storing your ROMs on an external hard drive then the hard bit is already done. All you need to do is specify the folder to which your cache files are written to. This can be done in the Skyscraper config.ini file.

If you are not storing your ROMs on an external storage device and you start seeing this error message, it may be time to start considering this option. Clearly, any remaining space available to you on your micro SD card is now very limited, and if ever you want to expand your ROM collection, your only option would be to increase your available storage space. What better way to do this than by adding an external USB drive to your setup? To learn more about storing your ROMs on an external device checkout our article here.

Specifying a new folder for your cache files is simple. Bring up the Skyscraper config.ini file again using the method outlined earlier in this article, and just above the code that you entered to specify your ScreenScraper user credentials enter the code below:

[main]
cacheFolder="/media/usb/retropie-mount/skyscrapercache"

So, if you have followed the steps to add your ScreenScraper user credentials, your completed code should look similar to that below:

[main]
cacheFolder="/media/usb/retropie-mount/skyscrapercache"
[screenscraper]
userCreds="USER:PASSWORD"

From now on, whenever you scrape any ROMs, your cache files will be stored in the skyscrapercache folder which resides within the retropie-mount folder. The same retropie-mount folder that you created when you set up your external USB storage device. Issue sorted!

Don’t like the folder name skyscrapercache? That’s fine. This was simply a folder name that I selected. You are welcome to name your cache folder anything you like, just remember to keep it clean… or not, it’s your retro gaming machine afterall 😉

Skipped ROMs And Where To Find A List Of Them

The more ROMs you scrape, the more likely it is that some of them will fall through the Skyscraper net and not have any metadata or media attributed to them. The reasons behind this can be numerous but it is generally to do with an inaccurate file name or that the game is the product of someone’s home brew efforts and is not actually listed in any system game lists. It is also possible, although unlikely that the game has not yet been indexed into the ScreenScraper databases.

Regardless of what the reason may be, the issue remains the same; you have some ROMs which still need to be scraped. But how do you find out which ROMs are missing their info and media, other than to wade through every single game title in your EmulationStation games lists? Well conveniently enough, at the end of every scrape, Skyscraper creates a text file that contains a list of every ROM that it has had to skip. These files can be found in the /home/USER/.skyscraper/ folder and are categorised by platform. An example of a filename would be skipped-amstradcpc-screenscraper.txt. All you need to do is open the txt file to view the list. You can then decide if you want to manually scrape the skipped ROMs or try scraping with a different database.

Syscraper skipped ROMs file
Any ROMs Skyscraper skips are added to a skipped ROMs file

Related Questions

What else can I do to customise my RetroPie build? There are a vast number of features you can configure in RetroPie to turn a generic device into your own personalised retro gaming machine. These features range from adding any number of playable retro games to expand your portfolio, to changing the theme of your front end menus and even adding music to enhance your experience. Generally if you can think of something you want to change, its likely that it can be done.

Can I use the native RetroPie scraper alongside of Skyscraper? Yes. As a matter of fact I would recommend this as part of your scraping process. While Skyscraper is, in my opinion, the best scraper available it is not adapted well to scraping individual ROMs. I would suggest using Skyscraper for scraping the bulk of your ROMs then use the RetroPie scraper to mop up any ROMs that Skyscraper has had to skip.