Skip to main content

CLI tool to backup Supernote note files

Project description

GitHub Release PyPI - Version Supported Python Versions OS support

CLI tool for wireless Supernote backups

The primary goal of this project is to create a Python command line interface tool to wirelessly backup files (in particular Notes) from a Supernote device to a local computer. It doesn't require a user account, mobile app, or storing notes with third-party cloud providers. Its purpose is to archive device files for storage and safekeeping and doesn't attempt to export or convert notes to another format.

This tool will probably work on any of the Supernote devices running the most up-to-date software. It works by using the builtin Browse & Access feature available on the Supernote device. If Ratta changes how the Browse & Access feature works in future software updates, it is possible this tool will break.

Table of Contents

Setup Process:

  1. Install with pip install snbackup into your Python virtual environment. I prefer to use pipx to make it globally available on my system.

  2. Create a folder somewhere on your computer to store your Supernote backups.

  3. IMPORTANT: Create a file called config.json. This file is required to determine where to save your backups and where to access the device on the network. There are a couple options.

    • Run snbackup --setup to run a prompted setup and supply your backup directory path, device IP address, and device port number. This will save your config.json to a .config folder within your home directory. The tool will look for this config file automatically when it runs.
    • Manually create the config.json file. Copy and paste from the example below and adjust as needed. Place this file in your chosen backup directory from step 2.

Example config.json (It must contain save_dir and device_url):

{
    "save_dir": "/Users/devin/Documents/Supernote",
    "device_url": "http://192.168.1.105:8089/"
}
  1. Make sure the Supernote device is connected to WiFi with the Browse & Access feature turned on.

  2. There are three main ways to run the snbackup tool from your terminal or command line:

    • This will first look for the required config.json from step 3 in the .config folder (if you ran --setup) and then fallback to looking for the file in your current working directory:
      snbackup

    • Use the -c or --config flag to optionally specify the location of your config.json file:
      snbackup -c /the/path/to/config.json

    • You can also set the environment variable SNBACKUP_CONF which points to the location of the config.json. This allows you to run snbackup from anywhere without needing to specify the config file location. The exact command to set environment variables will depend on your operating system and terminal shell.
      export SNBACKUP_CONF="/path/to/config.json"


The snbackup tool will attempt to connect to your device and download all files it finds to the save_dir directory specified in your config.json. The first run may take a few minutes or more as it will attempt to download everything; subsequent runs only download new or modified files.

The tool will make a new directory within your chosen save_dir folder for today and save all files as they are found on the device:

Supernote Path Local Save Directory
Note/Stuff/Ideas /save/directory/<YYYY-MM-DD>/Note/Stuff/Ideas.note
Note/note with spaces /save/directory/<YYYY-MM-DD>/Note/note+with+spaces.note
Document/Random.pdf /save/directory/<YYYY-MM-DD>/Document/Random.pdf

Forward slashes / will be automatically converted to backslashes \ on Windows systems.

In addition to printing out information to the terminal, a snbackup.log file will be created alongside the backups in your save_dir directory.

Helpful Information:

By default, the tool will attempt to backup everything on device. This includes files found in the Document folder, EXPORT folder, SCREENSHOT folder, etc. If you prefer to only download your notes which are found within the device's Note folder, use the command snbackup --notes.

It does not currently attempt to download files from a micro sd card if one has been installed on the Supernote device.

Uploading:

You can also upload files from your local computer with the -u flag to any of the following folders found on the Supernote device: Note, Document, EXPORT, MyStyle, SCREENSHOT, INBOX.

For example, snbackup -u Report.pdf will upload the Report.pdf file to the Document folder by default.

The command snbackup -u /path/to/picture.jpg -d MyStyle will upload the picture.jpg file to the destination folder MyStyle.

Additionally, you can specify multiple files at once separated by a space:
snbackup -u file1 file2 file3

If no destination is specified after the -d flag the device Document folder is used.

Accepted file extensions for uploads:

Category File Extensions
Note/Text .note, .txt
Documents .pdf, .docx, .doc, .xps
eBooks .epub, .mobi, .fb2, .cbz
Images .png, .jpg, .jpeg, .bmp, .webp

Additional Options:

  • Show all available command line options:
    snbackup -h

  • Inspect new files to be downloaded from device but do not download:
    snbackup -i

  • List out date and size information for backups found locally:
    snbackup -ls

  • The full backup flag will ignore previously saved backups and force the tool to redownload everything from device:
    snbackup -f

  • Remove all but the specified number of backups from your local backup directory. This example will keep only the 5 most recent backups and delete any older ones:
    snbackup --cleanup 5


Additional configuration options can be set in the config.json file.

{
    "save_dir": "/Users/devin/Documents/Supernote",
    "device_url": "http://192.168.1.105:8089/"
    "num_backups": 7,
    "cleanup": true,
    "truncate_log": 500
}

In addition to the two required save_dir and device_url keys, this example config keeps only the 7 most recent backups and also prevents the log file from exceeding 500 lines. With num_backups and cleanup both set, the cleanup process will run automatically, and the --cleanup flag no longer needs to be specified.

By default the snbackup.log file only keeps the last 1000 lines. This number can be adjusted in the config.json file.

Tips:

  • If your Supernote device's IP address changes often on your local network, consider assigning it a static IP address. This can typically be done by logging into your router and configuring it there.

  • Windows systems use the backslash character \ as a separator for file paths. This is tricky for JSON files. Luckily, you can still use forward slashes / as shown in the example config.json even on Windows. However, you can also escape the backslashes if you prefer. For example your save_dir might look something like this "C:\\Users\\devin\\My Documents\\Supernote" on a Windows computer.

  • I made this tool for me because I'm slightly paranoid about losing my written notes, thoughts, plans, brain dumps, etc... I'm open to feedback if you experience bugs or have any ideas for improvements.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snbackup-2.1.1.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snbackup-2.1.1-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file snbackup-2.1.1.tar.gz.

File metadata

  • Download URL: snbackup-2.1.1.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for snbackup-2.1.1.tar.gz
Algorithm Hash digest
SHA256 b3a9c97336ccd97aa640bc3f181058f8e3798123cdfc0c73e588bea48367c41c
MD5 c9e427a42956d673441dafcbc421d919
BLAKE2b-256 427144272261ebd40d00aab233d88c8c34374796cd9020ed134b0a1e920af3b9

See more details on using hashes here.

File details

Details for the file snbackup-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: snbackup-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for snbackup-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 09e0bd0539e22cb1b7bef15202c53fd87f4c65a90c4aa96c25c87c42fb9938c8
MD5 ab7acee4cc89b54a7f4dcc458cba121a
BLAKE2b-256 2e88148ffab349360a254e3fd11225027fbac9db6935909618c8c74bc71f8b24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page