Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sinoryn/vrcgetapidata

[W.I.P. but usable] A Scraper/API user & API Website for VRChat to retrieve information directly from the site & the API to obtain information on a user (friend) such as groups joined, group represented, profile, rank, etc...
https://github.com/sinoryn/vrcgetapidata

api axios express friend group profile puppeteer rank scraper ts typescript vrchat vrchat-api

Last synced: about 1 month ago
JSON representation

[W.I.P. but usable] A Scraper/API user & API Website for VRChat to retrieve information directly from the site & the API to obtain information on a user (friend) such as groups joined, group represented, profile, rank, etc...

Awesome Lists containing this project

README

        


Sinoryn Avatar



GitHub package.json version




Github top language


Repository size


GitHub contributors




GitHub commit activity


GitHub viewer counter


🚧 VRCGAD 🚀 is Under construction... 🚧


About   |  
Features   |  
Technologies   |  
Requirements   |  
Starting   |  
License   |  
Author


## :dart: About

The project has been created in order to be able to quickly and efficiently obtain data relating to my own VRChat account, such as the list of my groups, my represented group, all my worlds, my bio, my avatar, all members of my specific group, all bans of my specific group, all infos of my specific group etc...

And then put it all on a lightweight web server so I could have an API with a cache that would be quicker and easier to use and fetch in applications.

## :sparkles: Features

:heavy_check_mark: **Login to VRChat with Puppeteer**
Automate the VRChat login process using Puppeteer, including management of 2FA authentication. The process involves encoding the credentials in Base64, interacting with the login form and saving the authentication details so that the API can be used later via fetches without the need for continuous reconnection.

:heavy_check_mark: **Retrieve User Data via API**
Exposes an API endpoint for retrieving user data from scrape-generated JSON files & local backup of retrieved JSON by making requests to the official API. JSON data is read and returned as a response, with appropriate error handling for file access and parsing. All this is done with the aim of providing simpler access to data without exposing any compromising elements for your account or application.

:heavy_check_mark: **Prompt for User Input**
Utility function for prompting users to enter data via the command line. This function waits for user input and returns it as a string, which is useful for interactive scripts requiring identification or other information. As in the case of not wanting to put your password in the .env but entering it manually each time auth is initiated.

:heavy_check_mark: **Save Authentication Details**
Store encrypted login credentials, cookies and local storage data in JSON files for later use (for requests to the official API). The process includes creating the necessary directories and managing various authentication data, as well as modifying and creating JSONs for the custom API endpoint. Of course, all data remains on your own system.

:heavy_check_mark: **Handle Errors Gracefully**
Implement comprehensive error handling for file reading and JSON parsing. Proper responses and logging are in place to manage scenarios where files are missing or data is malformed.

## :rocket: Technologies

- [TypeScript](https://www.typescriptlang.org)
- [JavaScript](https://developer.mozilla.org/docs/Web/JavaScript) (After compilation)
- [Concurrently](https://www.npmjs.com/package/concurrently)
- [Express](https://expressjs.com)
- [Puppeteer](https://pptr.dev)
- [NodeJS](https://nodejs.org) (ReadLine, FS, Path)
- [Axios](https://axios-http.com)
- [js-base64](https://www.npmjs.com/package/js-base64)

## :white_check_mark: Requirements

Before starting :checkered_flag:, you need to have [Git](https://git-scm.com) and [Node](https://nodejs.org/en/) installed.

Also create an .env file with the data entered in the template below:

```js
NICKNAME=YourUsernameUsedInTheCreation;
PASSWORD=IfYouNeedToNotRefillAllTimeIsOptional;
USER_ID=usr_YOURIDVRCHAT;
GROUP_ID=grp_YOURGROUPID;
USER_AGENT=EXAMPLE (https://github.com/Sinoryn/VRCGetApiData)
PORT=IfYouWantToChangeTheDefaultWebAPIPort;
```

## :checkered_flag: Starting

```bash
# Clone this project
$ git clone https://github.com/Sinoryn/VRCGetApiData

# Access
$ cd VRCGetApiData

# Install dependencies
$ npm i

# Run the project
$ npm run start

# The web API will initialize in the by default
# The scraper will log in your console
```

## :memo: License

This project is under license from MIT. For more details, see the [LICENSE](LICENSE) file.

Made with :heart: by Sinoryn

 

Back to top