Code Monkey home page Code Monkey logo

switch-screenshots's Introduction

Nintendo Switch Screenshot Organizer

Script to organize Nintendo Switch screenshots by game title instead of date.

Written by Renan Greca in 2017. This code is free to distribute and alter.

Download

The latest stable release is 2.0.0. Download the Python file (Mac or Linux) or the Windows executable here:

https://github.com/RenanGreca/Switch-Screenshots/releases/tag/v2.0.0

You also need the game_ids.json file from the most recent release. This file is updated as we discover new IDs for games.

https://github.com/RenanGreca/Switch-Screenshots/releases

Usage

Place the program and the game_ids.json file in the same directory as the Switch's Album folder, either on the microSD card or on your computer after transferring the Album.

After running, all screenshots will be placed within directories according to which game they are from. They can be found within the Output directory.

If the game is currently not in the IDs file, a folder will be created using the game ID instead of title. You can rename it but please contribute the ID to the repository by filing an issue or pull request.

Windows

Double-click organize_screenshots.exe.

macOS

On a terminal, run:

python organize_screenshots.py

Linux

On a terminal, run:

python organize_screenshots.py

Optional parameters:

  • -i INPUT_DIR: Specifies location of the Album directory. Default: ./Album/.
  • -o OUTPUT_DIR: Specifies desired output directory. Default: ./Output/.

About the game IDs

Switch screenshots are stored in the following format: [timestamp]-[game id].jpg. Therefore, we can use the filenames to figure out from which game it was taken.

For example, the screenshot 2017030619573600-F1C11A22FAEE3B82F21B330E1B786A39.jpg was taken on March 6, 2017 in the game The Legend of Zelda: Breath of the Wild. Some titles may have more than one ID, depending on the region or version. Demos also have their own IDs.

The Switch UI contains multiple IDs, for different parts of the UI (home menu, friends list, system settings, etc.). For simplicity, I've labeled all those IDs as "Nintendo Switch".

Today, the Switch saves files as JPG (screenshots) or MP4 (recordings). The program also supports PNG files in case Nintendo ever adds lossless screenshots.

The game_ids.json file follows this format:

{
  "F1C11A22FAEE3B82F21B330E1B786A39": "The Legend of Zelda Breath of the Wild",
  "16851BE00BC6068871FE49D98876D6C5": "Mario Kart 8 Deluxe"
}

Important: If the game's title includes a colon (:), please remove it, as this character is not allowed in file or directory names.

Contributing

The initial version of game_ids.json contained only the titles I have played. If you have a screenshot for a game that is not on this list, the program will output a warning telling you which screenshot it was.

You may manually add the ID to the game_ids.json file, but it would be greatly appreciated if you could submit an issue request on GitHub detailing the ID that was not found and which game and region the screenshot is from.

The Windows .exe was generated using PyInstaller.

Discussion

If you want to discuss the program or ask questions about it, create an issue, check out the Reddit thread at /r/NintendoSwitch or send me a tweet @RenanGreca. :)

switch-screenshots's People

Contributors

colorpeak avatar dharple avatar doublecookies avatar exptom avatar fmartingr avatar fmmt666 avatar gamebits avatar garretvoorhees avatar gusso avatar halbrd avatar joaopinheiro avatar kevinvdt avatar lucasporlier avatar lunasorcery avatar pascalleroi avatar prat0088 avatar renangreca avatar thepariah4231 avatar ticky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

switch-screenshots's Issues

Python script doesn't run on Windows 10

It appears to need an absolute path.

I propose requiring one argument, the source directory. If people want to maintain current behavior they can run "python organize_screenshots.py ."

This might break the .exe double-click-to-run, but if we can ask a Mac user to open the terminal I think the same is OK for Windows users.

New ID (Zelda)

I just added this to my (local copy of the code).

"CC47F0DEC75C1FD3B1F95FA9F9D57667": "The Legend of Zelda Tears of the Kingdom",

New IDs

Thanks for this, I appreciate your efforts!

Here are some IDs from Europe (Spain)
The majority of missing IDs are from demos, so they won't be that useful, really xD

game_ids.txt

Game ID Update

Thank you so much for this script, this is perfect. I've been looking into doing a photo journal for my games, and not knowing how to get them organized stalled me out for years. I'm so grateful to be able to dig into it now! Anyway, here are a bunch of game IDs from my captures that weren't picked up in release 2.0.0:

Game ID Game Name
0C015090E6C5E3F06D97FEDE95458758 Luigi's Mansion 3
0DC6ECE91CF3F6F02BAFC002E3FFBAAD Fire Emblem: Three Houses
3B527963A4E21EDEF87C54FA5600E205 Kero Blaster
3C15B8B5FCFF64D185612CFC684FD589 Okami
3CB55EE215BEA02B113D3BFB17EF3DBA Dragon Blaze
5F25EBBAB5987964E56ADA5BBDDE9DF2 Pokémon: Let's Go, Eevee!
6DAE92E255B607316379F3E517CBDFC0 Marble It Up!
7F84FCDD31F7A57993D7F9D20F9FE46B Ikaruga
9BB7C01E75A2A0FD6AD24165CAB02257 Daemon x Machina Demo
36FB9647D509FCDAE5418FF0E8583142 Gato Roboto
42D51332E98075DFC90EDDCE4B254E8B The Missing: J.J. Macfield and the Island of Memories
48A5A467593C21DFC93CCCF18D91FCE1 Collection of Mana
051F2E17E4EB124107ADFF00712F68EA Katana Zero
67D01338887DAC4477826B5EA75BFB74 Wizard of Legend
69B9969EC3D9DF6399D6DC160DC26E68 Phantom Breaker: Battle Grounds Overdrive
71FADCF8929C7E9963F20F9D9728672A Mega Man 11
93C1C73A3BAF9123A15B9B24886B634B Octopath Traveler
0263CFE07655B982D6035111B38E8B72 Hyrule Warriors: Definitive Edition
372BD77417B847E4D7050826C7C9B60F Battle Chasers: Nightwar
935E13FC47C481C979FEA5B1CC318284 Wargroove
64902EF0DF1ABA05E4076CB0BBFCD9A5 Tales of Vesperia: Definitive Edition
987323D95ADF303B4B8C6E1A0173D61C Steam World Quest
7806952E0DBDCB5223EC78FF8088406C Mega Man X: Legacy Collection 1
9129043EF2AAD7F1157CF852BACB8F7D The Legend of Zelda: Link's Awakening
9349210FA0267D208CECA1B424DCE082 Team Sonic Racing
A6823431F0DD63EA1A6E9C4B064A7463 River City Girls
B2AA81D02C39303EBD04D8D7F246F34A Deltarune
B8FAEF4816CAC2B76D11869B05CA7601 Pokémom Shield
BA8E0FCB931BBA7F76DCA06732EF9A07 Mario Tennis Ace
BB59BA50B4B529EC74388B9232DFFE92 Fe
BB94A4F7A98363EA778A47A67857CF7D Final Fantasy X HD Remaster
BD0E7D5235BE8956C727AA4CED0452C7 Shovel Knight: Specter of Torment
BD73E6433C2A382DAEEBE2F64C3DD7DE Little Town Hero
C7C3CAEB6C50DA2C777325EA990171EE Katamari Damacy Reroll
CCFE55975D68069E990E9064D7B828A9 Cadence of Hyrule
D02D58137844CD4B939CD3571BCB8355 Steam World Heist
DE93618DDF64F9184ADD7AEC762AB7EB Star Ocean: First Departure R
E9A2C3977990DCBB13CD00C0F35675FD Downwell
E73E4976CD1992F1CF99AC0053695FD6 Super Monkey Ball: Banana Blitz HD
F9E4ED7281324AE9C62C7E2BBA082F61 The World Ends With You: Final Remix
F95B57762E79CABDA198AE6BBDC6C7D5 Bloodstained: Ritual of the Night
F869F29B8909D93B8F6A1EC5BDDAB49F Owlboy
F639752F5FA028761EF9C25DB534FD07 Azure Striker Gunvolt: Striker Pack
FEDDFB3BEB94843E6A8D2AF517CAE725 Chocobo's Mystery Dungeon: EVERY BUDDY!

Some extra IDs

So here are the IDs it couldn't identify for me and that are missing from the latest json.

"3C66B776DB1AA06323037049FACD96D3" Pokémon Sword
"1AAFE12FC4DA32AA90B2C527DF73B08B" VOEZ -demo version-
"2D2DD5427221CE0F9F97275FAAF2BD60" DOOM (1993)
"4D37E8E895F61DAB62161ACC7942945A" Membrane
"5A6F3157C944341CDE279FD85822A3AD" Pokkén Tournament DX
"5C78065CD98929D80FE9662AC4A6DDA2" Crypt of the Necrodancer
"5D500549174110191B5A65DD8B17A9E2" Pokémon Let's Go Pikachu/Let's Go Eevee trial version
"5E92066D83C981FCBC05AE4D9711906A" ファミリーコンピュータ Nintendo Switch Online (Famicom/NES, Japanese version)
"9D6B5AFEF371E7D57A4EF29F3A421F7A" Pokémon Home
"54D423DA5645E6DFF84020D96E3F2FEA" Blasphemous Demo
"94385799F4667FC55304697D8F49B8B7" VA-11 HALL-A
"509005580AA0EE52748499526A3C91B9" void tRrLM(); Trial,Ver (Japanese)
"AC0F641AF6D3A018CC6910B1787620CB" ACA NEOGEO Money Puzzle Exchanger
"C392D9DD4226F3430D460A366D67397E" Shipped
"EA525566BC202E51840BCC68D0E37FC9" DOOM 2
"FE6A6449B65FB0A4A26539786A3AA807" Freedom Planet
"FE18FAEF72D654FB0AB3E66905246B60" Cadence of Hyrule -demo version-

New ID's

Europe (spain)

0C015090E6C5E3F06D97FEDE95458758 - Luigi's mansion 3
3D8E1DE4D671F7453AFA0C395B825E90 - Clash N'Sane Trilogy
6EDB189E502491BA0A0696C9D03A8FEE - Borderlands 2
7CBCCE282CD36658AB28471FB4791102 - Pokemon Arceus
9A9B6E0371D34263D6B6577F9CBA54D5 - Metroid Dread
33B8CC310F76D76B17C6DB0011A75C8A - New Super Mario Bros U Deluxe
75EA6B6DBAD83649DC8B76075B47ECDA - The Legend of Zelda Skyward Sword HD
76ABD1FB8107400EA366E7B6FBE45ABB - Nintendo Switch Online App
87F15DF5B1168A79BAD3D501C9C0B14D - Borderlands The Pre Sequel
251B606CAAE97CD7BB1849E9DAD12C82 - Rayman Legends
5855558AA8FCD2E87BC21377436CFBF0 - Child of Light
A15180A3520B94075456E9EBE1CD7B71 - Marvel Guardians of the Galaxy
C15A47C7F7B07448C8F2E3BDF73AD439 - Namco Museum
D7BD945BC12F73CA28E54763B2FCE27F - Hyrule Wariors Age of Calamity Demo

.exe version only works for limited games?

Hey all!

I've seen that this has had several updates adding games to the .json file, but it seems like the .exe isn't utilizing that updated list? I've tried using the most recent .exe and .json several times, and it's only finding BotW, MK:8, and Switch OS screenshots, despite there being a boatload of screenshots from other games.

Any ideas on how to solve this?

Thanks!

Add Robonauts - Demo

I'm manually organizing my Nintendo Switch screenshots, but your index is being very useful for identifying the games, mainly the ones with very few screenshots (mostly demos), so I thought it would be great to help you somehow!

I read it's preferred to write an issue rather than forking the project, so here's the ID I would like to add:

"D68C79758FC22A7A0BEF5CCBC1F68FF1": "Robonauts - Demo"

(Also, I think "Resident Evil - Cloud Version" is misspelled as "Resident Evil - Cloud Ver.")

I look forward to contributing more to the project soon! Thanks!

Going through the json id file, found some games not implemented

Here are the only 2 I have

  • Pokemon Sword {"3C66B776DB1AA06323037049FACD96D3"}
  • Xenoblade Chronicles 2: Torna - The Golden Country {"4CBEE39065EC88984BABA68A511DDD19"}

These are both for the North American version (I don't know region details/nomenclature to be more specific. Apologies).

Couple more game IDs

Hi there - thanks for writing this script!

I have a few more game IDs, all from US territory.

"046C460F6D16A3B4015E1403DA816ECD": "Final Fantasy XII",
"2CC8B772AF83B29364B7B4AD907F1F51": "Final Fantasy XV - Pocket Edition",
"6D311B9F9472ED7110A68EEEFB884101": "Sphinx and the Cursed Mummy",
"8A02A443096C4A41164DDD7DD5CF0967": "Automachef",
"25B77E52575617C0C2E4A4E0A346538C": "Shantae Half Genie Hero",
"69AA450BB058D7C0F3FABB7FC7C2DBA2": "Moonlighter",
"74E60CA799C3278AD6279D11AE5FEBDA": "Onimusha Warlords HD",
"456F2C9BE4E84FE854619AD59C5D00A2": "Yonder - The Cloud Catcher Chronicles",
"692EC865DB8D5C0B5E910C82FDFC2AEC": "Raiden V",
"695E3FE0793D9789A57187ADD7649DCC": "Trine 4 - The Nightmare Prince"

Merge games list from nxshot

There is a project, s1cp/nxshot, that also seems to have a very large games list. Perhaps this project could merge it.

I like Switch-Screenshot's script better because it is about 4 times smaller and much more simple.

New IDs

Hello, I have found these missing IDs from my screenshots (NA).

  • 339470D1C820D6D2392320FD0992BB5E - Pokémon Unite
  • A5A477B869AFD225B3DAF74249D70FF2 - Pokémon Mystery Dungeon: Rescue Team DX
  • C57722BCA3D76018529DD7D1A46BB144 - Monster Boy and the Cursed Kingdom
  • E9FC2E92476F589F890674FE873B0D05 - Mario Party Superstars

Copy image even if game title not found

There is value in copying a game to a destination directory named after its ID. Presently those files are ignored. If the user wants to organize them he will need to scroll through potentially hundreds of lines of logs sorted by date, then add the titles to the .json file. It would be much faster and easier to use if the files were organized to folders he could inspect and rename. This way he would only need to run the script once and never touch the .json file.

Missing IDs

The script couldn't find these two IDs. Both are Europe region.

Game ID Game Name
02CB906EA538A35643C1E1484C4B947D Animal Crossing: New Horizons
F8DC9B4C1339AEC598320758EECD69C2 Warface

READ: No need for game IDs anymore

Hey folks, I, like some of you, like to have backup of all my systems screenshots and maintaining a list of game IDs for the switch has been an awful experience as of today.

Just you everyone know, Nintendo Switch 11.0+ introduced a way of copying screenshots directly from the Switch by connecting it via an USB cable and it displays screenshots in folders with the game's localized name:

Screenshot 2022-03-13 at 16 19 28

You can get more information here: https://en-americas-support.nintendo.com/app/answers/detail/a_id/53664/~/how-to-transfer-screenshots-and-video-captures-to-a-computer-via-a-usb-cable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.