{"id":23162742,"url":"https://github.com/leckau/vrcgetapidata","last_synced_at":"2025-08-18T03:31:56.598Z","repository":{"id":253499343,"uuid":"842708503","full_name":"Leckau/VRCGetApiData","owner":"Leckau","description":"[W.I.P. but usable] A Scraper/API user \u0026 API Website for VRChat to retrieve information directly from the site \u0026 the API to obtain information on a user (friend) such as groups joined, group represented, profile, rank, etc...","archived":false,"fork":false,"pushed_at":"2024-12-08T12:16:51.000Z","size":224,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-17T02:12:03.604Z","etag":null,"topics":["api","axios","express","friend","group","profile","puppeteer","rank","scraper","ts","typescript","vrchat","vrchat-api"],"latest_commit_sha":null,"homepage":"https://luneuh.github.io/VRCGetApiData","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Leckau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"kyuddle"}},"created_at":"2024-08-14T22:47:50.000Z","updated_at":"2024-12-08T12:17:05.000Z","dependencies_parsed_at":"2024-09-13T10:22:20.221Z","dependency_job_id":"54bde72d-eb3c-43c6-aae8-f2a42313d74f","html_url":"https://github.com/Leckau/VRCGetApiData","commit_stats":null,"previous_names":["kyuddle/vrcscraperuserdata","kyuddle/vrcgetapidata","sinoryn/vrcgetapidata","saryniel/vrcgetapidata","nuiqka/vrcgetapidata","luneuh/vrcgetapidata","lunneu/vrcgetapidata","leckau/vrcgetapidata"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leckau%2FVRCGetApiData","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leckau%2FVRCGetApiData/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leckau%2FVRCGetApiData/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leckau%2FVRCGetApiData/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Leckau","download_url":"https://codeload.github.com/Leckau/VRCGetApiData/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230198096,"owners_count":18188786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","axios","express","friend","group","profile","puppeteer","rank","scraper","ts","typescript","vrchat","vrchat-api"],"created_at":"2024-12-18T00:13:17.554Z","updated_at":"2024-12-18T00:13:18.193Z","avatar_url":"https://github.com/Leckau.png","language":"TypeScript","funding_links":["https://ko-fi.com/kyuddle"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" id=\"top\"\u003e \n  \u003cimg src=\"https://avatars.githubusercontent.com/u/169302941?s=80\" alt=\"Luneuh Github Avatar\" draggable=\"false\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\n    \u003cimg alt=\"GitHub package.json version\" src=\"https://img.shields.io/github/package-json/v/Luneuh/VRCGetApiData?label=VRC Get Api Data\u0026color=white\" width=\"400\" draggable=\"false\" /\u003e\n  \u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/search?q=repo%3ALuneuh%2FVRCGetApiData+owner%3ASinoryn+NOT+path%3A%2F%5E%5C.github%5C%2F%2F+NOT+path%3A%2F%5E%5Cdist%5C%2F%2F+NOT+language%3A%22JSON+with+Comments%22+NOT+language%3AText+NOT+language%3A%22Git+Attributes%22+NOT+language%3AMarkdown\u0026type=code\" title=\"See the Used Language in Src\" rel=\"noopener\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Github top language\" src=\"https://img.shields.io/github/languages/top/Luneuh/VRCGetApiData?color=white\" draggable=\"false\" /\u003e\n  \u003c/a\u003e\n  \u003cspan\u003e\n    \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/Luneuh/VRCGetApiData?color=white\" draggable=\"false\" /\u003e\n  \u003c/span\u003e\n  \u003ca href=\"https://github.com/Luneuh/VRCGetApiData/graphs/contributors\" title=\"See the contributors\" rel=\"noopener\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/Luneuh/VRCGetApiData?color=white\"\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://github.com/Luneuh/VRCGetApiData/graphs/commit-activity\" title=\"See the Commit Activity\" rel=\"noopener\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/m/Luneuh/VRCGetApiData?color=white\" draggable=\"false\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Luneuh/VRCGetApiData/graphs/traffic\" title=\"See the Graphs Traffic\" rel=\"noopener\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitHub viewer counter\" src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fhits.dwyl.com%2FLuneuh%2FVRCGetApiData.json\u0026color=white\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\n\t🚧 VRCGAD 🚀 is Under construction... 🚧\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#dart-about\"\u003eAbout\u003c/a\u003e \u0026#xa0; | \u0026#xa0; \n  \u003ca href=\"#sparkles-features\"\u003eFeatures\u003c/a\u003e \u0026#xa0; | \u0026#xa0;\n  \u003ca href=\"#rocket-technologies\"\u003eTechnologies\u003c/a\u003e \u0026#xa0; | \u0026#xa0;\n  \u003ca href=\"#white_check_mark-requirements\"\u003eRequirements\u003c/a\u003e \u0026#xa0; | \u0026#xa0;\n  \u003ca href=\"#checkered_flag-starting\"\u003eStarting\u003c/a\u003e \u0026#xa0; | \u0026#xa0;\n  \u003ca href=\"#memo-license\"\u003eLicense\u003c/a\u003e \u0026#xa0; | \u0026#xa0;\n  \u003ca href=\"https://github.com/Luneuh\" target=\"_blank\"\u003eAuthor\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## :dart: About\n\nThe 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...\n\nAnd 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.\n\n## :sparkles: Features\n\n:heavy_check_mark: **Login to VRChat with Puppeteer**  \nAutomate 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.\n\n:heavy_check_mark: **Retrieve User Data via API**  \nExposes an API endpoint for retrieving user data from scrape-generated JSON files \u0026 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.\n\n:heavy_check_mark: **Prompt for User Input**  \nUtility 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.\n\n:heavy_check_mark: **Save Authentication Details**  \nStore 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.\n\n:heavy_check_mark: **Handle Errors Gracefully**  \nImplement 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.\n\n## :rocket: Technologies\n\n- [TypeScript](https://www.typescriptlang.org)\n- [JavaScript](https://developer.mozilla.org/docs/Web/JavaScript) (After compilation)\n- [Concurrently](https://www.npmjs.com/package/concurrently)\n- [Express](https://expressjs.com)\n- [Puppeteer](https://pptr.dev)\n- [NodeJS](https://nodejs.org) (ReadLine, FS, Path)\n- [Axios](https://axios-http.com)\n- [js-base64](https://www.npmjs.com/package/js-base64)\n\n## :white_check_mark: Requirements\n\nBefore starting :checkered_flag:, you need to have [Git](https://git-scm.com) and [Node](https://nodejs.org/en/) installed.\n\nAlso create an .env file with the data entered in the template below:\n\n```js\nNICKNAME=YourUsernameUsedInTheCreation;\nPASSWORD=IfYouNeedToNotRefillAllTimeIsOptional;\nUSER_ID=usr_YOURIDVRCHAT;\nGROUP_ID=grp_YOURGROUPID;\nUSER_AGENT=EXAMPLE (https://github.com/Sinoryn/VRCGetApiData)\nPORT=IfYouWantToChangeTheDefaultWebAPIPort;\n```\n\n## :checkered_flag: Starting\n\n```bash\n# Clone this project\n$ git clone https://github.com/Luneuh/VRCGetApiData\n\n# Access\n$ cd VRCGetApiData\n\n# Install dependencies\n$ npm i\n\n# Run the project\n$ npm run start\n\n# The web API will initialize in the \u003chttp://localhost:3000\u003e by default\n# The scraper will log in your console\n```\n\n## :memo: License\n\nThis project is under license from MIT. For more details, see the [LICENSE](LICENSE) file. \u003cbr\u003e\nMade with :heart: by \u003ca href=\"https://github.com/Luneuh\" target=\"_blank\"\u003eLuneuh\u003c/a\u003e\n\n\u0026#xa0;\n\n\u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleckau%2Fvrcgetapidata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleckau%2Fvrcgetapidata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleckau%2Fvrcgetapidata/lists"}