Artie Scraper - Light and Fast Artwork Scraper [v2.0.0]

:artist_palette: Artie v3.0 - Light & Fast Art Scraper for Anbernic Devices

Hey everyone! Excited to share the latest update for Artie, the art scraper built for MuOS on Anbernic devices.

What’s new in v3.0:

:bullseye: ROM Detail View - Press Y on any ROM to preview scraped box art, preview images, and synopsis text. Status badges (BOX/PRV/TXT) show what’s been scraped at a glance.

:high_voltage: Reliable Scraping Cancellation - Press B during batch scraping to cancel immediately. No more waiting — response is instant.

:rocket: Performance Optimizations

  • Pre-allocated frame buffer (no more ~1.2MB allocation per frame)

  • Image & logo caching — media loads once, served from memory after that

  • Double-buffered rendering eliminates screen flash on transitions

  • Connection pooling for HTTP requests

:artist_palette: Modern UI - Dark theme with amber/gold accent, system logos inline, color-coded status badges, progress bar with ETA, pill-shaped controls.

:man_running: Enhanced Navigation - Page jumping with L1/R1 (by page) and L2/R2 (by 100) for quick browsing through large ROM collections.

:artist_palette: Image Mask Processing - Apply custom PNG overlays to box art and preview images for consistent borders and frames.

Quick Install:

  1. Download from GitHub Releases

  2. Extract and configure ROM paths + Screenscraper credentials in config.json

  3. Copy Artie folder to /mnt/mmc/MUOS/application/

  4. Launch from MuOS apps menu

:sparkling_heart: If you find Artie useful, a :star: on GitHub or a Ko-fi goes a long way!

Feedback and bug reports welcome on GitHub Issues. Always check the log at /mnt/mmc/MUOS/application/.artie/log.txt before reporting.

7 Likes

Cool, test soon on my 40H…

This is very cool!!, keep up the good work :100:

Tested and not open…

can you share the content of log.txt ?

1 Like

didn’t also open for me at first, but I just forgot to edit the json file (config rom folder path)

It’s the same error for me too : patch of roms :slight_smile:

Bu it’s not possibl to add our own xml for scrappe ?

Can you give me an example of your xml? I can see if it can be supported for next version

<?xml version="1.0" encoding="UTF-8"?>
<artwork>
    <output type="cover" width="640" height="480">
        <layer resource="screenshot" width="310" height="279" align="right" valign="bottom" opacity="100" x="-15" y="-50">      
            <rounded radius="20"/>
            <stroke width="2" red="0" green="0" blue="0"/>
            <shadow distance="6" softness="5" opacity="50"/>
        </layer>
         <layer resource="wheel" width="220" x="150" y="-130" align="center" valign="middle">
            <shadow distance="6" softness="5" opacity="50"/>
        </layer> 
    </output>
</artwork>

It work too with Scrappy and it’s that i use here for exempl…

Hello. MuOS Goose. RG 34XX SP.

Resolution 720x480.

Launching Artie makes the entire OS extra wide and cropped after exit.

Absolutely LOVE Artie. I have scraped thousands of roms with it. I have 1 minor bug for you and 1 small feature request :slight_smile:

Tiny Bug - The system name display at the top left gets cut off for long system names.

Feature request - When Artie is scraping a large directory, say 500 roms… it can take a long time. It would be nice if there were a way to “Stop” the scraping process so you can break out of it and come back to it later on. The only way I could figure to stop it was the safe reboot hotkey.

Thanks for the very cool app!

Artie is awesome. It should be the default in muOS.

It doesn’t work for me with my FBNEO folder (Final Burn Neo written in capital letters).

Whenever it doesn’t download images, I check config.json to see the folders, and in this case, it says this:

“dir”: “FBNEO”,
“id”: “”,
“name”: “FBNEo (Empty)”,
“box”: “/mnt/sdcard/MUOS/info/catalogue/FBNEO/box/”,
“preview”: “/mnt/sdcard/MUOS/info/catalogue/FBNEO/preview/”,
“synopsis”: “/mnt/sdcard/MUOS/info/catalogue/FBNEO/text/”

Any suggestions for a fix?

Thanks in advance.

You’re missing the screenscraper id for fbneo. I used the arcade ID, 75 for mine and it scraped everything. :slight_smile:

on trimui brick it’s impossibile to use….. i open also an issue on github

1 Like

The App doesn’t open at all. It shows “Loading Application” but ends up doing nothing. Help pls.

1 Like

Maybe someone could help. I’m running golden goose on a 34xxsp and migrsted metadata to sd2. So, artie will only run when i put it in sd1’s application folder. In sd2 it just hamgs loading. Also, once it does run it saves all artwork to sd1 instead of sd2 and it will only.then display if i synch the sd1 catalog to sd2. So, two questions.

  1. Can i run Artie of of sd2?

And/Or

  1. Can artie save scrapped artwork straight to sd2.

I’ve tried various config edits even going as far as chaning all catalog calls to “sdcard” from “mmc.” No luck.

Any suggestions?

40xxh on 2508.4 Loose Goose, application does not open, shows “loading application” for 2 minutes then nothing happens.
New update 2601.0 Jacaranda just came out, maybe update for this one?

Hello everyone,

new update with support for latest MuOS.

Changelog:

New Features

  • ROM Detail View — Press Y on any ROM to preview scraped box art, preview images, and synopsis text. Scrape directly from the detail view with A. (424716d)

  • Reliable Scraping Cancellation — Press B during batch scraping to cancel immediately. Worker threads check cancellation between API calls and bail out via _ScrapeCancelledError. (9819167, bf89235)

  • Non-blocking Input — New check_input_nonblocking with event buffer draining so key presses are never missed behind sync events. (8a6ee0a)

  • Persistent evdev File Descriptorstart_nonblocking()/stop_nonblocking() keep a persistent fd open during scraping so kernel-queued input events are never lost between polls. (d2e1768)

Performance

  • Pre-allocated Frame Buffer — Reuses a single ~1.2MB image buffer per frame instead of allocating a new one each render cycle. (637393f)

  • Image Cache — ROM detail media thumbnails are loaded, resized, and cached in memory. Subsequent views skip disk I/O and decoding. (637393f)

  • Simplified Cache Retrieval — Condensed cache function call parameters. (1f40332)

UI / UX

  • Modern Dark UI — Amber/gold accent theme, system logos inline, color-coded status badges (B/P/T), progress bar with ETA, pill-shaped control buttons. (7ecc877)

  • Updated Button Layout — ROM screen now shows ST/All, A/Get, X/Del, Y/View, B/Back, M/Exit. (424716d)

  • Updated Screenshots — New screenshots reflecting the v3.0 UI. (7ecc877)

Bug Fixes

  • Scraping Cancellation Not Working — Root cause: Linux evdev queues events per open fd; opening/closing a new fd each poll lost events generated in between. Fixed with persistent fd. (d2e1768)

  • Missed Key Pressescheck_input_nonblocking previously read only one event; sync events ahead of key presses caused buttons to be missed. Now drains all pending events. (bf89235, 8a6ee0a)

  • CI “No Jobs Were Run” Emailsmain.yml had all jobs commented out, triggering empty workflow emails on every push. Uncommented the lint job. (6955e4a)

API / Backend

  • Remove Base64 Encoding for Credentials — Credentials are now passed directly, removing unnecessary encoding layer. (2c678f6)

  • Remove Hash Functionality — Simplified search API by removing ROM hash-based lookups. (48ff08a)

  • Sanitize Log Credentials — URLs and exceptions are sanitized to prevent credential leaks in logs. (PR #39, 9201d87)

Infrastructure

  • Launch Script Refactor — Improved structure and environment variable management. (426e1ee)

  • Release Workflow — Cleaned up tag-only trigger. (fccf88c)

  • CI Lint Pipeline — Re-enabled flake8 lint job on push to main and PRs. (6955e4a)

Documentation

  • README v3.0 Update — Navigation control tables, ROM detail view docs, performance architecture notes, updated configuration options. (cd14e42, 7ecc877)

Download here: GitHub - milouk/artie: Art Scraper for Anbernic Devices · GitHub

1 Like

New update v3.5.0

New Features

  • OTA Updates — Check for new versions and apply them directly from the app with automatic restart

  • Backup to SD2 — Back up your entire catalogue (box art, previews, synopsis) to a second SD card

  • Metadata Scraping — Fetch genre, developer, publisher, player count, and release date for each ROM

  • Localized Synopsis — Synopsis text fetched in your configured language, with English fallback

  • Scrape All Systems — Batch-scrape every system at once from the systems screen

Improvements

  • Non-blocking update check on startup — no more delayed launches

  • O(1) ROM lookups using sets instead of lists

  • Single-ROM scrape now properly clears the cancel flag before starting

  • ROM detail view respects MENU button to exit

  • Config path handling fixed for relative vs absolute arguments

  • Delete-system-media now shows confirmation feedback after completion

the app doesn’t show up i funky jacaranda 2601.1

1 Like