Skip to content

Yellow-Dog-Man/ResoniteAccountDownloader

Repository files navigation

Resonite Account Downloader

A small tool/utility to download your Resonite Account contents to your local computer.

This is a fork of the original tool for another platform. The license file reflects this too.

Why a Fork?

Resonite takes data privacy seriously, as a part of a user's data rights they have the right to a copy of the data on our platform about them. Resonite has functionality for that in it's AccountDumper tool but that's an unwieldy CLI tool.

GuVAnj8Gv3RJ's work on the account downloader for another platform was compatible and so a fork was made. This has sped up this item significantly so that the team can focus on other matters.

Scope

This repository/software/project aims to do only a limited number of things:

  1. Download the contents of a Resonite Account and any groups to a Local Drive.
  2. Store the contents in a way that other software or projects can interact with.
  3. Preserve that contents in a way that allows peace of mind.

We do not intend to process the contents in a way that makes it compatible with other engines such as Unity, Unreal etc.

Download Instructions

  1. Click this link
  2. Scroll to the section of the page that says "Assets".
  3. Click on the Asset(Zip File) that matches your operating system (Windows or Linux) (You DO NOT need the source code zips)
  4. It will download
  5. UnZip the downloaded Zip file
  6. Enter the folder from the Zip file
  7. Run the Exe (Resonite Account Downloader.exe) by double clicking it.

Contributing

Thanks for your interest in contributing, there are several ways you can contribute!

  1. Localization
  2. Bug Reporting
  3. Feature Requests
  4. Engineering / Programming

We appreciate any contributions, you'll get added to our Contributor list for pretty much any activity.

Localization

We'd love help with localization.

You have two options when localizing.

Manual

  1. Duplicate: https://github.com/Yellow-Dog-Man/ResoniteAccountDownloader/blob/main/AccountDownloader/Properties/Resources.resx
  2. Save it as Resources.<your language code>.resx
  3. Translate
  4. PR it

Bug Reporting

All software has bugs, this software included. Whenever a bug is encountered, please open an issue the format doesn't really matter provided you clearly explain your problem. Please provide a log file if you can though. We'll get to the bugs as soon as we can.

Where do I find the log files?

In the top bar menu for the tool click Help -> Open Log Folder. It'll take you right there.

Feature Requests

Feature requests are welcome, please open an issue where we can discuss the feature request. Do keep in mind our scope though.

Engineering / Programming

We're happy to accept contributions in the form of PRs, but please open an issue to discuss your changes before making them. We can talk about suitability, method, approach etc.

FAQ

How do I download this?

Follow the download instructions.

Why does this exist?

Backing up Resonite content is always a good idea.

Can I restore this download into my Resonite Account?

No.

What can I do with the downloaded files?

The files are mostly machine readable collections of entities from your account, feel free to poke around.

You could however, write additional tools that do stuff with them.

Can I import downloaded content into Unity?

This is not a supported use case of this utility. No effort will be made to support this. You could make your own tooling to do that though.

Should I use a new folder for each user/group I download?

Ideally no, the local store that this app builds will in some cases handle duplicate assets in a way that will reduce total file size if you use the same folder for multiple accounts. The download location can handle as many accounts as needed.

Can I run this app for multiple users at the same time?

Yes, but if you do this, you'll need to use two separate folders which we do not recommend. You may also breach some rate limits Resonite has in place on its cloud infrastructure.

Do subsequent downloads, re-download assets?

For assets, we skip downloading them if an existing asset is found. This makes many downloads incremental rather than starting from scratch.

Why is assets showing as 0/XYZ?

For assets, we skip downloading them if an existing asset is found. If your progress statistics or report etc. show 0/xyz etc then it means that no new assets were found.

What's the difference between Assets and Records/Items/Worlds/Avatars?

This diagram might help:

  • Assets: Anything that makes up an element that is not the structure of it within the inspector. So Image,Sounds,Videos,Model Files. These are downloaded incrementally
  • Records: Records contain a manifest of all assets that are required to represent an item or world. These are downloaded each time.
  • Everything Else: JSON Soup. Just JSON Files of various types. Contacts, Messages etc. These are downloaded each time.

What are Asset/Record failures?

At the end of your download you might see asset or record failures.

  • A record failure usually means that an entire item/world/avatar failed to download, you won't have any assets from that record because the tool could not download the Record to find them
  • An asset failure means a part of a downloaded record could not be downloaded.

In both cases, make sure you take a look at the UI scrolling left and right etc. Better UI for this area might be a focus if we continue to see errors. In both events the details are logged to your log files too.

How can we trust this?

If you'd like to build your trust in this software you can do so in a number of ways:

  1. Read the source code of the repository, there is no hidden code or components
  2. Read Verifying Checksums which verifies that the builds you obtain are built on GitHub using code on GitHub without outside interference.
  3. Discuss the software with the community, several members of the community including Team members have reviewed this code and confirmed it to be ok.

If you have further doubts feel free to open an issue or a discussion.

Verifying Checksums/Integrity

If you'd like to double check the checksums/integrity of the built Binaries of this project. You can follow these steps:

  1. Download the latest release(1.10.7 onwards) for your operating system
  2. Also download the Checksum for that operating system. It is a text file.
  3. Check the Actions log for this repository, for the version you downloaded
  4. Locate the "Print Checksum" step
  5. Copy the printed checksum somewhere safe
  6. Now you can check the checksum of the downloaded files.
    1. On windows you can run: certutil -hashfile <file> SHA256
    2. On Linux you can run: sha256sum <file>
  7. Compare the output of the command to the downloaded checksum file.
  8. Compare the output of the command to the checksum found in the GitHub Actions Log
  9. If all 3 match, then you know that this build that you've downloaded was generated purely from GH actions and not manipulated.

This should help to increase trust, that the builds of this tool are not manipulated by the author. What you see on GH is what gets built and served to you via the releases tab.

If you'd like to read more about this concept, you can read this Wikipedia article.

Contributors

Below is a list of all of the awesome people who have helped to contribute to this software. If you feel you're missed, or that your contribution types aren't correct. Please feel free to open an issue.

TheJebForge
TheJebForge

🌍
orange3134
orange3134

🌍
Stiefel Jackal
Stiefel Jackal

πŸ’» πŸ› πŸ”¬ πŸ€”
Sharkmare
Sharkmare

🌍
GuVAnj8Gv3RJ
GuVAnj8Gv3RJ

πŸ’» 🚧
Cyro
Cyro

πŸ’»
Psychpsyo
Psychpsyo

πŸ’» 🌍
xLinka
xLinka

πŸ”¬
Rucio
Rucio

πŸ›
Samuel-Sann Laurin
Samuel-Sann Laurin

πŸ› 🌍
rampa3
rampa3

🌍
ThomFox
ThomFox

πŸ”¬
5H4D0W-X
5H4D0W-X

πŸ›
ProbablePrime
ProbablePrime

πŸ›
epicEaston197
epicEaston197

πŸ›
EIA485
EIA485

πŸ“–
ClimberJ
ClimberJ

🌍
DaichiOkano
DaichiOkano

🌍
EuphieEuphoria
EuphieEuphoria

πŸ›
Alex-2Pi
Alex-2Pi

🌍

Weblate Contributors

We're still figuring out how to link in Weblate contributors for now, we'll manually add you here :)

  • Spanish
    • gallegonovato (6)