{"id":23609638,"url":"https://github.com/zyrenth/discordlauncher","last_synced_at":"2025-08-30T15:33:00.735Z","repository":{"id":211151413,"uuid":"728275188","full_name":"Zyrenth/DiscordLauncher","owner":"Zyrenth","description":"Ever wanted to go back to the old versions of Discord? Not a problem, go back as early as 2019 using this program.","archived":false,"fork":false,"pushed_at":"2024-04-23T18:12:08.000Z","size":88,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-23T20:11:53.600Z","etag":null,"topics":["client","discord","discord-client","javascript","old-discord","typescript","zyrenth"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zyrenth.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}},"created_at":"2023-12-06T15:44:23.000Z","updated_at":"2024-04-23T18:12:12.000Z","dependencies_parsed_at":"2024-03-01T16:47:38.799Z","dependency_job_id":"a3d4aec3-29cf-4533-92c0-bc09115617b3","html_url":"https://github.com/Zyrenth/DiscordLauncher","commit_stats":null,"previous_names":["zyrenth/discordlauncher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zyrenth%2FDiscordLauncher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zyrenth%2FDiscordLauncher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zyrenth%2FDiscordLauncher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zyrenth%2FDiscordLauncher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zyrenth","download_url":"https://codeload.github.com/Zyrenth/DiscordLauncher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231501617,"owners_count":18386288,"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":["client","discord","discord-client","javascript","old-discord","typescript","zyrenth"],"created_at":"2024-12-27T15:13:48.978Z","updated_at":"2024-12-27T15:13:49.675Z","avatar_url":"https://github.com/Zyrenth.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT]  \n\u003e This version of the project is no longer actively maintained. I have plans for a V2 version in the future but I don't have an ETA for that yet.\n\n\u003e [!IMPORTANT]  \n\u003e This project is entirely for educational purposes only! Data that can be found in the \"presets\" folder is strictly owned by Discord.\n\n# DiscordLauncher\nEver wanted to go back to the old versions of Discord? Not a problem, go back as early as 2019 using this program.\n\n\u003ca href=\"https://github.com/Zyrenth\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Zyrenth/Zyrenth/main/GitHub%20Projects%20Profile%20Link.png\" /\u003e\u003c/a\u003e\n\n# How to use it?\n1. Clone this repo using:\n```bash\ngit clone https://github.com/Zyrenth/DiscordLauncher.git \u0026\u0026 cd DiscordLauncher\n```\n\n2. Install the deps. and build the project.\n```bash\nnpm i \u0026\u0026 npm run build\n```\n\n3. Run the project.\n```bash\nnpm run start\n```\n\n4. Open the version selector using the following URL (if you're on the same machine): `http://localhost:3455`.\n\n\u003e [!TIP]  \n\u003e Most clients work a lot better if they're being accessed via HTTPS. You can search it up on Google on how you can \"enable\" HTTPS access on `Express.js`.\n\u003e\n\u003e Some clients are marked and requires to be accessed via HTTPS, if you're importing a newer client you'll most likely need to access it via HTTPS.\n\n# Configuration\nThis is an example configuration, you can edit this in `config.json`.\n\n`secret` - A secret value for `express-session`, you can set this to anything you want, like any gibberish text.\n\n`port` - The port where Discord Launcher will listen on, this is the \"number part\" on the URL. (`http://localhost:[port]`)\n```json\n{\n    \"secret\": \"secret text\",\n    \"port\": 3455\n}\n```\n\n# Known Issues\n\n- Captchas aren't working, why is this?\n  - Since hCaptcha is configured to operate on `discord.com` it will refuse to work outside of that domain, a workaround is to do those things on `discord.com` and then return to Discord Launcher.\n  - On older versions that use reCaptcha, the reason they don't work is just because they're old, I'm not sure if Discord still accepts reCaptcha on their older APIs but I can imagine that even if they allow it, it still wouldn't work for the same reason as hCaptcha. The workaround is the same as for hCaptcha.\n- I can't log in, register, join a server, etc., why is this?\n  - Because that endpoint requires a captcha which doesn't work here. (mentioned above why)\n- Older clients crash after using a newer one, why is that?\n  - This is because the newer clients use locally saved settings/values that aren't compatible with the older clients, clear your cache and storage for Discord Launcher and try again. (You'll need to log in again so copy your token before.)\n- I shared my Discord Launcher instance with my friend who then got banned from a server while using Discord Launcher, now I can't join that server too because it says I'm banned, why is that?\n  - This is because Discord Launcher uses a locally running proxy that runs on your machine essentially making your friend browse Discord on your IP. Discord Bans are IP bans so since he got banned through that proxy, the ban is effective for your IP. The solution for this is not to share your Discord Launcher instance with others and if your friend already got banned from a server, the only solution is to change your IP.\n\n# Default presets\nBy default I provided 5 (+1) presets that you can use out of the box:\n- November, 2019\n- November, 2020\n- November, 2021\n- November, 2022\n- November, 2023\n- (+1) Web testing (debug)\n\nThese presets have been tested and they work currently (12/7/2023).\n\n# Adding more presets (versions)\n1. Go to `web.archive.org` and type in `https://discord.com/login` (or if the client you want to add is older than May 2020 then type in `https://discordapp.com/login`).\n\n2. Select a date and click on it, now we're going to modify that URL:\n  - From this `https://web.archive.org/web/20190701103558/https://discordapp.com/app`.\n  - To this `https://web.archive.org/web/20190701103558im_/https://discordapp.com/app`.\n  - In short, we add `im_` after those numbers, now that we've modified the URL press enter.\n\n3. Open the Developer tools by pressing \u003ckbd\u003eF12\u003c/kbd\u003e or \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e.\n\n4. Right-click on the `\u003chtml\u003e` tag on the top and click `Edit as HTML` (the text might be different in other browsers), select everything, and copy it.\n\n5. Now go back to the project files and find the `presets` folder, go ahead and create a new folder inside, you can name it anything (but try not to use special characters just to be safe).\n\n6. Inside that folder create an `index.html` file and paste the code you've just copied from `web.archive.org`.\n\n7. Search for \"`integrity`\" and \"`nonce`\" attributes, if you find any remove them because the browser might not load them otherwise.\n\n8. Search for the \"`window.GLOBAL_ENV`\" object and remove `https://discord.com` or `//discord.com` from them, here is an example of how you should do it:\n(Some of the values are trimmed here for better readability, the trimmed values aren't sensitive at all and they're required for Discord to work.)\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```js\nwindow.GLOBAL_ENV = {\n    API_ENDPOINT: '//discord.com/api',\n    API_VERSION: 9,\n    GATEWAY_ENDPOINT: 'wss://gateway.discord.gg',\n    WEBAPP_ENDPOINT: '//discord.com',\n    CDN_HOST: 'cdn.discordapp.com',\n    ASSET_ENDPOINT: '//discord.com',\n    MEDIA_PROXY_ENDPOINT: '//media.discordapp.net',\n    WIDGET_ENDPOINT: '//discord.com/widget',\n    INVITE_HOST: 'discord.gg',\n    GUILD_TEMPLATE_HOST: 'discord.new',\n    GIFT_CODE_HOST: 'discord.gift',\n    RELEASE_CHANNEL: 'stable',\n    DEVELOPERS_ENDPOINT: '//discord.com',\n    MARKETING_ENDPOINT: '//discord.com',\n    BRAINTREE_KEY: '...', // Trimmed, you shouldn't modify this\n    STRIPE_KEY: '...', // Trimmed, you shouldn't modify this\n    ADYEN_KEY: '...', // Trimmed, you shouldn't modify this\n    NETWORKING_ENDPOINT: '//router.discordapp.net',\n    RTC_LATENCY_ENDPOINT: '//latency.discord.media/rtc',\n    ACTIVITY_APPLICATION_HOST: 'discordsays.com',\n    PROJECT_ENV: 'production',\n    REMOTE_AUTH_ENDPOINT: '//remote-auth-gateway.discord.gg',\n    SENTRY_TAGS: {\"buildId\":\"...\",\"buildType\":\"normal\"}, // Trimmed, you shouldn't modify this\n    MIGRATION_SOURCE_ORIGIN: 'https://discordapp.com',\n    MIGRATION_DESTINATION_ORIGIN: 'https://discord.com',\n    HTML_TIMESTAMP: Date.now(),\n    ALGOLIA_KEY: '...', // Trimmed, you shouldn't modify this\n    PUBLIC_PATH: '/assets/'\n};\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```js\nwindow.GLOBAL_ENV = {\n    API_ENDPOINT: '/api', // Modified\n    API_VERSION: 9,\n    GATEWAY_ENDPOINT: 'wss://gateway.discord.gg',\n    WEBAPP_ENDPOINT: '', // Modified\n    CDN_HOST: 'cdn.discordapp.com',\n    ASSET_ENDPOINT: '', // Modified\n    MEDIA_PROXY_ENDPOINT: '//media.discordapp.net',\n    WIDGET_ENDPOINT: '/widget', // Modified\n    INVITE_HOST: 'discord.gg',\n    GUILD_TEMPLATE_HOST: 'discord.new',\n    GIFT_CODE_HOST: 'discord.gift',\n    RELEASE_CHANNEL: 'stable',\n    DEVELOPERS_ENDPOINT: '', // Modified\n    MARKETING_ENDPOINT: '', // Modified\n    BRAINTREE_KEY: '...', // Trimmed, you shouldn't modify this\n    STRIPE_KEY: '...', // Trimmed, you shouldn't modify this\n    ADYEN_KEY: '...', // Trimmed, you shouldn't modify this\n    NETWORKING_ENDPOINT: '//router.discordapp.net',\n    RTC_LATENCY_ENDPOINT: '//latency.discord.media/rtc',\n    ACTIVITY_APPLICATION_HOST: 'discordsays.com',\n    PROJECT_ENV: 'production',\n    REMOTE_AUTH_ENDPOINT: '//remote-auth-gateway.discord.gg',\n    SENTRY_TAGS: {\"buildId\":\"...\",\"buildType\":\"normal\"}, // Trimmed, you shouldn't modify this\n    MIGRATION_SOURCE_ORIGIN: '', // Modified\n    MIGRATION_DESTINATION_ORIGIN: '', // Modified\n    HTML_TIMESTAMP: Date.now(),\n    ALGOLIA_KEY: '...', // Trimmed, you shouldn't modify this\n    PUBLIC_PATH: '/assets/'\n};\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n9. After that, save the file and in that same folder, create a file called `metadata.json`.\n\n10. Paste this template to your metadata file and modify\n  - the `name` value, this will be the naem/title for this preset in the version selector.\n  - the `id` value, this must be a unique number.\n  - supported `flags`:\n    - 1 - requires https\n    - 2 - for testing\n    - 3 - broken\n```json\n{\n    \"name\": \"Example name\",\n    \"id\": 6\n}\n```\n\n11. Restart (not rebuild) the project to refresh the metadata or the preset list.\n\n12. Congrats you've added a new preset.\n\n# Designs\n- `Web testing (debug)` preset and `Version/preset selector`: [@Zyrenth](https://github.com/Zyrenth) and [@ZyrenthDevelopment](https://github.com/ZyrenthDevelopment)\n  - Zyrenth's Design System's license can be found in the `ZDev_Design_License.md` file.\n- `Discord` (\"client\"): [discord.com](https://discord.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyrenth%2Fdiscordlauncher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzyrenth%2Fdiscordlauncher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyrenth%2Fdiscordlauncher/lists"}