Git Product home page Git Product logo

flipnote-id's Introduction

Flipnote ID

Flipnote ID is a program written in Python 3 that can get the names, Studio IDs, thumbnails, and more from the metadata of Flipnotes. It works with both PPM files (Flipnote Studio / DSi) and KWZ files (Flipnote Studio 3D / 3DS). Output can either be printed through the terminal or to simple HTML files.

Download

This program requires Python 3 to run. Optionally, Sudofont can be used to correct issues with missing characters in the HTML files.

If Python 3 is not already installed on the system, that should be done first. On Linux, this script was tested and developed with Python 3.6.9, but it should work with any version of Python 3. For Windows, Python 3.7 or higher is required.

Next, clone this repository.

git clone https://github.com/pummelator/flipnote-id

Alternatively, this repo can be downloaded as a ZIP using Github's "Download ZIP" option. Make sure to unpack the ZIP somewhere it can be easily found before continuing on.

Once that's completed, the program can be used. However, to get Sudofont to work, a copy of the TTF version of the font will need to be downloaded to the same directory as the main Flipnote ID files. From the command line, this can be done using wget

cd flipnote-id
wget https://raw.githubusercontent.com/Sudomemo/Sudofont/master/dist/fonts/sudofont.ttf

This can also be done by going to this page and clicking the download button. Screenshot of Sudofont's sudofont.ttf page on Github

Usage

To use Flipnote ID, open a terminal in the FlipnoteID directory. This assumes that Python has been configured to be in the system's PATH, so just typing "python3" (or potentially just "python") will run the Python executable. The examples shown below will all use "python3" to run the appropriate version of Python, but that may not be the case on all systems.

The general usage for this program looks like this on Linux/macOS:

python3 flipnote_id.py IN_PATH OPTIONS

and this on Windows:

python3 -Xutf8 flipnote_id.py IN_PATH OPTIONS

The -Xutf8 option is necessary on Windows to ensure that the character encoding used is UTF-8. The program won't work without it.

  • IN_PATH specifies the input file or directory and must be given in order for the program to run.
  • OPTIONS can be any of the additional options that are available. These can be given in any order. If a file is specified, then output will be directed to the terminal and any other options specified will be ignored, as they mostly pertain to directory outputs. For a list of options, check the documentation directory for a file detailing the options or run
python3 flipnote_id.py -h

Example of using Python ID on a single file:

python3 flipnote_id.py "Documents/Flipnotes/John/my_cool_flipnote.ppm"

(The specified filename isn't in the format of an actual PPM filename, it's just an example)

Example of using Python ID on a directory and sending the HTML output files to the "Documents/" directory:

python3 flipnote_id.py "Documents/Flipnotes/" -o="Documents/"

The HTML files, thumbnails (unless told not to get them), and sudofont.ttf, (if downloaded and placed in the right spot) will be in a directory called "flipnoteid_out/". If no output directory is specified, this will be placed in the same directory as the input path.

Credits

  • Credits to the Flipnote Collective for their documentation of the PPM and KWZ file formats. I also used some code listed in their PPM documentation for determining the checksum character in filenames (as listed on this page) and the pseudocode detailing how to process PPM thumbnails (as listed on this page). While code from it wasn't used here, the flipnote-fetcher script inspired me to make this, as Flipnote Studio IDs are the only way to check for a user's Flipnotes in the Internet Archive's partial backup of the DSi Library from Flipnote Gallery World.

  • Credits to pbsds for additional documentation on the PPM format

  • Credits to the Sudomemo team for Sudofont and for hosting one of the most well-established modern alternatives to Flipnote Hatena.

License

This code is under an MIT license. For more information, please read the LICENSE file.

flipnote-id's People

Contributors

pummelator avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

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.