[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95141":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},95141,"GoLiveBypass","bezumiya\u002FGoLiveBypass","bezumiya","GoLiveBypass — Equicord\u002FVencord plugin that restores Go Live & camera for Brazilian Discord users by booting the session behind a non-BR proxy (Tor or tested free proxy). Privacy and anti-censorship tool.","https:\u002F\u002Fdiscord.gg\u002FCAggM5Z76q",null,"TypeScript",132,17,1,5,0,13,23,61.57,"GNU General Public License v3.0",false,"main",true,[25,26,27,28,29,30,31,32,33,34],"brazil","discord","equicord","golive","plugin","privacy","proxy","screenshare","tor","vencord","2026-08-24 04:01:23","# GoLiveBypass — Bypass do Go Live no Discord (Brasil)\n\nFeito por um desenvolvedor brasileiro, **devolve o Go Live e a câmera para usuários brasileiros** no Discord para computador. Você não precisa entender de tecnologia para usar: o jeito mais fácil é o [aplicativo de um clique](#-novo-interface-gráfica-plug-and-play-windows-e-macos) logo abaixo.\n\nPor dentro, só o WebSocket de gateway do Discord passa por uma proxy fora do Brasil — todo o resto sai direto, na sua velocidade normal. Os detalhes técnicos ficam [mais abaixo](#como-funciona).\n\n> **English summary below \u002F Resumo em inglês no final.**\n\n## 🌟 NOVO: Interface Gráfica Plug and Play (Windows e macOS)\n\nCriamos um aplicativo completo que faz todo o trabalho de forma **100% automática**, sem precisar abrir terminais, usar scripts ou instalar modificações complexas como o Equicord.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"golive-gui\u002Fsrc\u002Fassets\u002Fhero-ui.png\" alt=\"A interface do GoLiveBypass: status do Discord, botao de ativar, tema claro e escuro e proxy customizada\" width=\"420\">\n\u003C\u002Fp>\n\n### Como Baixar e Instalar\n1. Vá na **[última release](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass\u002Freleases\u002Flatest)** aqui no GitHub.\n2. Baixe o arquivo da sua plataforma, na lista no fim da página:\n   - **Windows:** `GoLiveBypass.exe` (portátil, roda direto sem instalar)\n   - **macOS (Apple Silicon):** `GoLiveBypass.dmg`, ou o `GoLiveBypass.zip` se preferir\n3. Abra o arquivo que você acabou de baixar.\n\nO programa **não é assinado**. O sistema avisa na primeira vez. Se preferir não correr esse risco, use a [instalação por comando](#um-comando-só), que é o mesmo bypass sem executável.\n\n**Windows (SmartScreen):** **Mais informações → Executar assim mesmo**.\n\n#### macOS\n\nDois avisos do sistema, e nenhum dos dois é o GoLiveBypass “quebrado”.\n\n**1. Abrir o app (Gatekeeper).** Clique com o **botão direito** no GoLiveBypass → **Abrir** → **Abrir**. Se o macOS só mostrar que não é possível abrir, vá em **Ajustes do Sistema → Privacidade e Segurança** e clique em **Abrir mesmo assim**.\n\n**2. Deixar o app mexer no Discord (Administração de Apps).** Se você já usou o Vencord, sabe qual é essa tela: o macOS não deixa um programa alterar o `Discord.app` até você autorizar. É **a mesma permissão**. Na primeira vez que você clicar em Ativar, o sistema bloqueia a escrita; o GoLiveBypass tenta abrir **Ajustes do Sistema → Privacidade e Segurança → Administração de Apps**. Ative o GoLiveBypass (ou arraste o app para a lista) e clique em Ativar de novo.\n\n**Depois de uma atualização do Discord.** No Mac o instalador troca o `.app` inteiro e a injeção some. Abra o GoLiveBypass e ative de novo. (No Windows o standalone tenta adiantar isso sozinho; na GUI do Mac isso não existe.)\n\n### Como Usar\n1. O aplicativo vai detectar o seu Discord automaticamente (no Mac, em `\u002FApplications` ou `~\u002FApplications`, inclusive PTB e Canary).\n2. Clique em **\"Ativar Bypass\"**.\n3. O Discord vai reiniciar automaticamente com o Go Live desbloqueado!\n4. Pode fechar a janela sem medo: o app fica na **bandeja** do Windows (junto do relógio) ou na **barra de menus** do Mac. Clique no ícone de lá para reabrir, ativar\u002Fdesativar ou **Sair** — sair por esse ícone é o que reverte tudo ao normal.\n5. Se quiser que ele já abra com o PC (direto escondido, sem janela pulando na tela), marque **\"Iniciar com o Windows\"** ou **\"Iniciar com o Mac\"** na janela ou no menu do ícone.\n\n> **Dica Importante:** Se a sua transmissão ficar com a tela preta ou não carregar de primeira, recarregue o Discord: **Ctrl + R** no Windows, **Cmd + R** no Mac.\n\n\n## 🐧 Interface Gráfica para Linux (AppImage)\n\nA mesma interface gráfica do Windows, **agora para Linux**, empacotada como **AppImage** (roda em qualquer distro: Debian, Ubuntu, Fedora, Arch e derivadas).\n\nAssim como a versão Windows, ela é **portátil**: ativa o GoLiveBypass ao clicar e fica na **bandeja** do sistema — fechar a janela só a esconde, e o **Sair** pelo ícone da bandeja é o que reverte tudo ao normal. Por baixo, ela chama o [modo standalone](#modo-standalone-só-o-discord-sem-equicord-e-sem-vencord) (POSIX, funciona em qualquer shell), então toda a lógica de detecção — Discord nativo, flatpak, bootstrap novo, snap — é a mesma dos scripts, com o progresso aparecendo na tela.\n\n### Como Baixar e Instalar\n1. Vá na **[última release](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass\u002Freleases\u002Flatest)**.\n2. Baixe o **`GoLiveBypass-*.AppImage`**.\n3. Dê permissão de execução e abra:\n\n```sh\nchmod +x GoLiveBypass-*.AppImage\n.\u002FGoLiveBypass-*.AppImage\n```\n\n> Se o seu sistema não tiver FUSE (alguns containers\u002FWSL), use `--appimage-extract-and-run`:\n> ```sh\n> .\u002FGoLiveBypass-*.AppImage --appimage-extract-and-run\n> ```\n\n### Como Usar\n1. O aplicativo detecta o seu Discord automaticamente (nativo ou flatpak).\n2. Clique em **\"Ativar Bypass\"** — o Discord fecha, o bypass entra e ele reabre.\n3. Fechar a janela só a esconde na bandeja (o app continua vivo); para reverter o bypass de verdade, use o **Sair** no menu do ícone da bandeja.\n\n> **Nota:** se o seu Discord é flatpak do sistema, a primeira ativação pode pedir sua senha (via `pkexec`) para liberar a pasta do bypass para o sandbox.\n\n---\n\n---\n\n## Índice\n\n**Quero instalar agora**\n- [**Interface Gráfica (Windows e macOS)**](#-novo-interface-gráfica-plug-and-play-windows-e-macos) — 1 clique para ativar\u002Fdesativar, sem terminal\n- [**Interface Gráfica (Linux, AppImage)**](#-interface-gráfica-para-linux-appimage) — 1 clique, portátil, em qualquer distro\n- [**Um comando só**](#um-comando-só) — uma linha no PowerShell ou no terminal, sem baixar nada\n- [Instalação automática](#instalação-automática-recomendado) — o instalador completo, com menu, para usar via plugin Equicord\u002FVencord\n- [Modo Standalone (Scripts)](#modo-standalone-só-o-discord-sem-equicord-e-sem-vencord) — direto no Discord, sem mod e sem compilar nada\n- [**Linux: Arch, Debian, Ubuntu, Fedora**](#linux-arch-debian-ubuntu-fedora) — onde o Discord fica em cada distro, e a pedra do Node no Debian\n\n**Já instalei**\n- [Uso](#uso) — o que fazer depois de instalar\n- [Configuração](#configuração) — região da call, região da transmissão, roteamento, proxy\n- [Solução de problemas](#solução-de-problemas) — Discord travado, transmissão que não sobe, plugin sumido\n- [O registro](#o-registro-o-que-o-plugin-anotou) — o arquivo que conta o que aconteceu, para relatar um problema\n\n**Quero entender ou fazer à mão**\n- [Por que este plugin existe](#por-que-este-plugin-existe)\n- [Go Live no Brasil: por que funciona](#go-live-no-brasil-por-que-funciona)\n- [Avisos importantes](#avisos-importantes) — o que o plugin faz com a sua conexão, e os riscos\n- [Como funciona](#como-funciona) — as duas travas e como cada uma é desarmada\n- [Instalação manual, passo a passo](#instalação-passo-a-passo-completo) — cada etapa à mão\n- [Instalação no Vesktop](#instalação-no-vesktop) — passo a passo para quem usa o Vesktop no lugar do Discord normal\n- [Dependências](#dependências-o-que-baixar-e-como-instalar) — só para o caminho manual\n\n**Projeto**\n- [Estrutura](#estrutura) · [Licença](#licença) · [Autor](#autor) · [Agradecimentos](#agradecimentos)\n\n---\n\n## Instalação automática (recomendado)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Finstalacao.gif\" alt=\"O instalador acha o Equicord, instala o plugin, compila e o Go Live volta a funcionar\" width=\"720\">\n\u003C\u002Fp>\n\nUm script faz tudo: acha o seu Equicord ou Vencord, instala o plugin, compila e abre o Discord com o Go Live funcionando. Se você não tiver nenhum dos dois, ele pergunta qual você quer e instala junto. Prefere fazer cada etapa à mão? Siga o [passo a passo escrito](#instalação-passo-a-passo-completo).\n\n### Um comando só\n\n**Windows**, no PowerShell:\n\n```powershell\n& ([scriptblock]::Create((irm https:\u002F\u002Fbezu.dev\u002Fgolive.ps1)))\n```\n\n**Linux**, no terminal:\n\n```sh\ncurl -fsSL https:\u002F\u002Fbezu.dev\u002Fgolive.sh -o golive.sh && sh golive.sh\n```\n\nOs dois abrem o mesmo menu da instalação normal.\n\nSe quiser passar opções, elas vão no fim:\n\n```powershell\n& ([scriptblock]::Create((irm https:\u002F\u002Fbezu.dev\u002Fgolive.ps1))) -Proxy \"socks5:\u002F\u002Fusuario:senha@host:1080\"\n```\n\n```sh\ncurl -fsSL https:\u002F\u002Fbezu.dev\u002Fgolive.sh -o golive.sh && sh golive.sh --proxy socks5:\u002F\u002Fusuario:senha@host:1080\n```\n\n> **Por que não `irm ... | iex` e `curl ... | bash`?** As duas formas curtas funcionam, mas em silêncio pela metade. No Windows, `iex` **ignora as opções** — um `-Proxy` no fim simplesmente não chega. No Linux é pior: o `bash` passa a ler o script pela entrada padrão, então o menu tenta ler a sua resposta e acaba consumindo a próxima linha do próprio script. A pergunta nunca aparece.\n\n**Roda em qualquer shell** — bash, zsh, sh, dash, ksh, fish, ou o que você tiver. O comando acima baixa o script e roda com `sh` (o instalador é POSIX, não depende de bash). A forma antiga `bash \u003C(curl -fsSL ...)` só funciona em bash\u002Fzsh (usa process substitution) e, pior, o `bash` lendo o script pela entrada padrão consome a sua resposta do menu — por isso a pergunta nunca aparecia.\n\n### Baixando o arquivo\n\n**Windows:** baixe o [`GoLiveBypass-Installer.bat`](installer\u002FGoLiveBypass-Installer.bat) e dê dois cliques. Ele libera a execução só para aquele processo (`Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`), baixa o `.ps1` se ele não estiver do lado, e roda tudo.\n\n**Linux:**\n\n```bash\ncurl -fsSLO https:\u002F\u002Fraw.githubusercontent.com\u002Fbezumiya\u002FGoLiveBypass\u002Fmain\u002Finstaller\u002Fgolivebypass-installer.sh\nchmod +x golivebypass-installer.sh\n.\u002Fgolivebypass-installer.sh\n```\n\nAo abrir, ele mostra o que encontrou e um menu:\n\n```\n  Detectado:\n    Discord   instalado (1)\n    Mod       Equicord\n    Fonte     \u002Fhome\u002Fvoce\u002FEquicord\n    Plugin    nao instalado\n\n  O que voce quer fazer?\n\n    [1] Instalar ou atualizar o GoLiveBypass\n    [2] Remover so o plugin (o mod continua)\n    [3] Restaurar tudo (remove o plugin e desfaz a injecao)\n    [0] Sair\n```\n\nEscolhendo instalar, ele pergunta três coisas: **onde** (usar o mod que já está aí ou baixar outro), **como sair do Brasil** (proxy gratuita testada sozinha, Tor local, ou uma proxy sua) e **por quanto tempo** (permanente, ou temporário — que desfaz a injeção quando você fechar o Discord).\n\n**Pelo PowerShell:**\n\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Fbezumiya\u002FGoLiveBypass\u002Fmain\u002Finstaller\u002FGoLiveBypass-Installer.ps1 -OutFile GoLiveBypass-Installer.ps1\npowershell -ExecutionPolicy Bypass -File .\\GoLiveBypass-Installer.ps1\n```\n\nEle descobre onde está o seu checkout **lendo a própria injeção do Discord**: o instalador do Equicord e o do Vencord substituem o `app.asar` por um stub que faz `require` da pasta de build, e desse caminho dá para derivar a raiz do repositório. Se não achar por aí, procura nos lugares habituais.\n\n| sua situação | o que acontece |\n|---|---|\n| Equicord ou Vencord já instalado a partir do fonte | Copia o plugin, compila e reinicia o Discord |\n| Instalado, mas o Discord não carrega desse checkout | Compila e roda o `pnpm inject` para apontar o Discord para ele |\n| Você não tem nenhum dos dois | Mostra uma tela para escolher **Equicord** ou **Vencord**, baixa, compila e injeta |\n| Falta Git ou Node | No Windows, oferece instalar pelo winget. No Linux, mostra o comando da sua distro (o pacote do Node é `nodejs`, e costuma ser antigo demais: nesse caso use nvm, fnm ou o NodeSource). O pnpm sai do `corepack enable` nos dois |\n\nA descoberta é automática e roda em milissegundos: primeiro lê a injeção do Discord, depois varre os lugares onde um checkout costuma estar (perfil, Documentos, Desktop, Downloads, `dev`, `repos`, `projects`, `source`, e a raiz de cada disco).\n\nOutros modos:\n\n```powershell\n.\\GoLiveBypass-Installer.ps1 -Source C:\\caminho\\do\\Equicord  # aponta o checkout na mão\n.\\GoLiveBypass-Installer.ps1 -Mod Vencord                     # escolhe o mod sem a tela\n.\\GoLiveBypass-Installer.ps1 -Yes                             # sem perguntas, para automação\n.\\GoLiveBypass-Installer.ps1 -Mode Install                    # instala direto, sem menu\n.\\GoLiveBypass-Installer.ps1 -Mode Uninstall                  # remove o plugin e recompila\n.\\GoLiveBypass-Installer.ps1 -Mode Restore                    # remove o plugin e desfaz a injeção\n```\n\n```bash\n.\u002Fgolivebypass-installer.sh --source ~\u002FEquicord   # aponta o checkout na mão\n.\u002Fgolivebypass-installer.sh --mod vencord         # escolhe o mod sem a tela\n.\u002Fgolivebypass-installer.sh --yes                 # sem perguntas, para automação\n.\u002Fgolivebypass-installer.sh --install             # instala direto, sem menu\n.\u002Fgolivebypass-installer.sh --uninstall           # remove o plugin e recompila\n.\u002Fgolivebypass-installer.sh --restore             # remove o plugin e desfaz a injeção\n```\n\nO instalador **baixa o plugin direto deste repositório** em vez de carregar uma cópia embutida, então nunca instala uma versão defasada. Ele nunca mexe no `app.asar`: quem injeta é o instalador oficial do Equicord\u002FVencord.\n\nO instalador já deixa o plugin **ativado e configurado**. Depois que ele terminar, feche o Discord pela bandeja e abra de novo: é isso.\n\n## Modo standalone: só o Discord, sem Equicord e sem Vencord\n\nSe você não usa nenhum mod e não quer instalar um, existe o **modo standalone**. Ele instala o bypass direto no Discord.\n\n**Não precisa de Node, nem de pnpm, nem de git.** Não há etapa de compilação: o bypass é um arquivo `.js` que o próprio Discord carrega ao abrir.\n\n| | plugin | standalone |\n|---|---|---|\n| exige Equicord ou Vencord | sim | **não** |\n| exige Node, pnpm e git | sim | **não** |\n| convive com outros plugins | sim | não, ocupa o lugar do mod |\n| tela de configuração | dentro do Discord | um `settings.json` |\n| diagnóstico | `\u002Fgolivebypass` e arquivo | arquivo |\n\n**Escolha o standalone** se você só usa o Discord puro. **Escolha o plugin** se já usa Equicord ou Vencord — os dois ocupam o mesmo lugar dentro do Discord, e instalar o standalone por cima desliga o seu mod. O instalador detecta isso e pergunta antes de mexer.\n\n### Como instalar\n\n**Windows:** baixe a pasta `standalone` e dê dois cliques no `GoLiveBypass-Standalone.bat`.\n\n**Linux:**\n\n```bash\nchmod +x golivebypass-standalone.sh\n.\u002Fgolivebypass-standalone.sh\n```\n\nPara usar a sua própria proxy ou o Tor:\n\n```powershell\n.\\GoLiveBypass-Standalone.ps1 -Proxy \"socks5:\u002F\u002F127.0.0.1:9050\"\n```\n\nPara ver o que ele detectou sem mexer em nada, `-Mode Status`. Para desfazer, `-Mode Uninstall` — ele devolve o `app.asar` original, byte a byte.\n\n### Como ele funciona, e por que é mais simples\n\nO plugin desarma duas travas: a do cliente, por patch, e a do servidor, pela proxy. O standalone precisa de **uma** só.\n\nO motivo é que a trava do cliente vem de um experimento que o servidor atribui a partir do IP de onde o WebSocket de gateway sai. Com o gateway saindo por um IP não bloqueado, **o experimento não é atribuído** — os botões ficam livres sozinhos, sem patch nenhum. O patch do plugin é rede de segurança, não o mecanismo principal.\n\nSem a parte do cliente, sobra só o processo principal, e aí o desenho muda: em vez de mandar a sessão inteira pela proxy e soltar depois, o standalone instala uma regra por host (um PAC) que manda **apenas** `gateway.discord.gg` e `remote-auth-gateway.discord.gg` por um roteador SOCKS local. Uma regra assim não precisa ser solta nunca, e todo o resto do Discord sai direto o tempo todo.\n\nO roteador escuta só em `127.0.0.1`, numa porta que o sistema escolhe, e **recusa qualquer destino que não esteja nessa lista** — sem isso ele seria um SOCKS aberto que qualquer programa da máquina poderia usar com a identidade do Discord.\n\nSe nenhuma saída ficar pronta a tempo, a conexão sai direta em vez de ficar esperando: Discord sem bypass é ruim, Discord que não abre é muito pior.\n\n### Depois de uma atualização do Discord\n\nO Discord se atualiza numa pasta nova, sem a injeção, e o bypass sumiria em silêncio. Enquanto a versão atual ainda está rodando, o standalone detecta a pasta nova e já deixa ela pronta. Se mesmo assim parar de funcionar depois de uma atualização, rode o instalador de novo.\n\n## Linux: Arch, Debian, Ubuntu, Fedora\n\nOs instaladores detectam a sua distro sozinhos. Esta seção é para entender o que eles fazem, e para quem prefere fazer à mão.\n\n### Qual dos dois usar\n\n- **Só uso o Discord** → [modo standalone](#modo-standalone-só-o-discord-sem-equicord-e-sem-vencord). Não precisa de Node, nem de pnpm, nem de git. É um `.js` e pronto.\n- **Uso ou quero usar Equicord\u002FVencord** → o instalador do plugin, acima.\n\n### Onde o Discord fica em cada distro\n\nIsto mudou em maio de 2026, na versão 1.0.136 do Discord, e a maior parte dos tutoriais na internet ainda está desatualizada.\n\n**Hoje o pacote que você instala não contém o Discord.** O `.tar.gz` oficial, o `.deb`, o pacote oficial do Arch e o RPM do RPM Fusion trazem apenas um *bootstrapper* de uns 4 MB. Na primeira vez que você abre, ele baixa o app de verdade **para dentro da sua pasta pessoal**.\n\n| como você instalou | onde o `app.asar` fica |\n|---|---|\n| `.tar.gz` oficial, `.deb`, `extra\u002Fdiscord` do Arch, RPM Fusion | `~\u002F.config\u002Fdiscord\u002Fapp-\u003Cversão>\u002Fresources\u002F` |\n| PTB | `~\u002F.config\u002Fdiscordptb\u002Fapp-\u003Cversão>\u002Fresources\u002F` |\n| Canary | `~\u002F.config\u002Fdiscordcanary\u002Fapp-\u003Cversão>\u002Fresources\u002F` |\n| `discord_arch_electron` (AUR) | `\u002Fusr\u002Fshare\u002Fdiscord\u002Fresources\u002F` |\n| `discord-electron-openasar` (AUR) | `\u002Fusr\u002Flib\u002Fdiscord\u002Fresources\u002F` — **já tem OpenAsar** |\n| `discord-ptb` \u002F `discord-canary` (AUR) | `\u002Fopt\u002Fdiscord-ptb\u002Fresources\u002F`, `\u002Fopt\u002Fdiscord-canary\u002Fresources\u002F` |\n| Flatpak do sistema | `\u002Fvar\u002Flib\u002Fflatpak\u002Fapp\u002Fcom.discordapp.Discord\u002Fcurrent\u002Factive\u002Ffiles\u002Fdiscord\u002Fresources\u002F` |\n| Flatpak do usuário | `~\u002F.local\u002Fshare\u002Fflatpak\u002Fapp\u002Fcom.discordapp.Discord\u002Fcurrent\u002Factive\u002Ffiles\u002Fdiscord\u002Fresources\u002F` |\n| Snap | dentro de um squashfs, somente leitura de verdade: **não dá para injetar** |\n\nTrês consequências práticas:\n\n**Quase sempre não precisa de `sudo`.** Se o seu Discord veio pelo caminho normal, o `app.asar` está na sua pasta pessoal. Os instaladores só pedem root quando o alvo realmente pertence ao root — os pacotes do AUR que ainda embutem o app, e o Flatpak instalado para o sistema todo.\n\n**Flatpak funciona, e um `flatpak update` desfaz.** O deploy do Flatpak parece intocável mas é um diretório comum: a injeção só renomeia o `app.asar` e cria uma pasta ao lado, sem reescrever arquivo nenhum, então os objetos do repositório ostree ficam intactos. O que muda é que cada atualização refaz o deploy inteiro e leva a injeção junto — rode o instalador de novo depois. Os instaladores também precisam liberar a pasta do bypass para o sandbox (`flatpak override --filesystem=`), senão o Discord abre reclamando de módulo não encontrado.\n\n**A atualização do Discord desfaz a injeção.** Ele baixa a versão nova numa pasta `app-\u003Cversão>` inteiramente nova, e o que você injetou fica na pasta velha. Não dá para impedir isso de fora: rode o instalador de novo depois de atualizar. O instalador avisa quando esse é o seu caso.\n\nSe você usa `discord-electron-openasar`, ele **já substitui** o `app.asar` pelo OpenAsar. Injetar por cima apaga o OpenAsar — o instalador avisa antes.\n\nPor isso os instaladores procuram o `app.asar` de verdade em vez de confiar numa lista: `\u002Fusr\u002Fshare\u002Fdiscord` existe nos dois mundos com significados opostos — no pacote oficial do Arch ele contém **só** o bootstrapper, e no `discord_arch_electron` contém o app inteiro.\n\n### Arch e derivadas (Manjaro, EndeavourOS, Garuda)\n\nO Arch entrega Node atual (26.x) e tem o `pnpm` empacotado, então é o caso mais simples:\n\n```bash\nsudo pacman -S --needed nodejs npm git pnpm\n```\n\nO instalador faz isso sozinho, com confirmação. Ele também prefere o `pnpm` do pacman em vez de um `npm install -g`, que jogaria arquivos em `\u002Fusr\u002Flib` fora do controle do pacote.\n\nCom o pacote **oficial** (`extra\u002Fdiscord`), o `app.asar` fica na sua pasta pessoal e nenhum `sudo` é necessário. Com o **`discord_arch_electron`** do AUR o app fica em `\u002Fusr\u002Fshare\u002Fdiscord`, e aí sim precisa de root — e um `pacman -Syu` sobrescreve a injeção, então rode o instalador de novo depois de atualizar.\n\n### Debian, Ubuntu, Mint, Pop!_OS\n\nAqui tem uma pedra: **o Node do repositório é velho demais**. O Equicord precisa da versão 22 ou mais nova, e o Debian estável e o Ubuntu LTS entregam versões bem anteriores. O `pnpm build` quebra lá na frente com um erro que não diz \"seu Node é antigo\" — por isso o instalador confere a versão **antes** de começar e explica o que fazer.\n\nO jeito mais direto:\n\n```bash\ncurl -o- https:\u002F\u002Fraw.githubusercontent.com\u002Fnvm-sh\u002Fnvm\u002Fv0.40.1\u002Finstall.sh | bash\n# feche e abra o terminal\nnvm install 22\n```\n\nOu pelo [NodeSource](https:\u002F\u002Fgithub.com\u002Fnodesource\u002Fdistributions), se preferir pacote do sistema.\n\nGit e npm vêm do repositório normalmente:\n\n```bash\nsudo apt-get install -y git npm\n```\n\n### Fedora e Nobara\n\n```bash\nsudo dnf install -y nodejs npm git\n```\n\nSe o Node vier abaixo de 22:\n\n```bash\nsudo dnf module reset nodejs && sudo dnf module enable nodejs:22\n```\n\n### openSUSE\n\n```bash\nsudo zypper install -y nodejs npm git\n```\n\n### Permissões\n\nO Discord instalado em `\u002Fusr\u002Fshare`, `\u002Fusr\u002Flib` ou `\u002Fopt` pertence ao root, então a injeção precisa de `sudo`. Os instaladores pedem **só quando precisam** — se o seu Discord está em `~\u002F.local\u002Fshare` ou numa pasta sua, nada de sudo é usado.\n\nNenhum dos dois roda comando com sudo sem perguntar antes, e o comando exato aparece na tela para você conferir.\n\n## Uso\n\n1. Abra o Discord normalmente. O roteador local sobe antes do gateway conectar e a saída é escolhida em seguida.\n2. Se você escolheu Tor no instalador, deixe o Tor aberto antes; com proxy gratuita não precisa fazer nada.\n3. Espere o toast. `Go Live is unlocked on this session` significa que o servidor liberou — só o gateway fica na proxy, todo o resto sai direto. `GoLiveBypass could not unlock this session` significa que mesmo recarregando o servidor manteve o bloqueio: confira o registro e, se usa proxy própria, verifique se ela está no ar.\n4. Entre na call e transmita.\n\nSe o Discord reconectar o gateway no meio da sessão (queda de rede, suspender o notebook), o socket novo nasce pela mesma saída e o desbloqueio sobrevive. Se a saída morrer, o batimento de 30 em 30 segundos já deixa uma reserva testada pronta para assumir. Só quando nenhuma reserva serve é que a conexão cai para a direta, e aí o plugin procura outra em segundo plano e, se a sessão continuar bloqueada, recarrega sozinho atrás da nova.\n\n## Configuração\n\nNas settings do plugin:\n\n- **Voice region**: seletor com a lista real de regiões que o Discord expõe. Padrão: `Automatic`, que devolve a decisão ao Discord.\n\n  > **Cuidado ao forçar `brazil` aqui.** Há indício de que o servidor de mídia brasileiro é justamente onde a transmissão é recusada: numa sessão em que a call caiu no Brasil o Go Live não subiu, e numa sessão em que caiu em Santiago funcionou. São duas observações, não uma prova, mas o padrão seguro é não forçar. Use este campo se quiser priorizar latência e estiver disposto a perder o Go Live.\n\n  Vale saber que isto é uma **preferência**, não uma ordem: o Discord pode ignorar e escolher outra região, e foi o que aconteceu no teste.\n- **Session routing**: o que atravessa a proxy. `Gateway only` (padrão) roteia só o WebSocket do gateway, que é o que libera o Go Live, e deixa o resto do Discord na velocidade máxima. `Gateway and login` também roteia a autenticação, escondendo seu IP real na hora do login — ao custo de uma abertura mais lenta. Nesse modo, se a saída falhar durante o login a conexão **não** cai para a direta: vazar o IP real no login seria o oposto do que a opção promete.\n- **Proxy**: proxy que carrega o gateway, no formato `esquema:\u002F\u002Fhost:porta` (`socks5`, `http` ou `https`). Se a sua pedir login, use `esquema:\u002F\u002Fusuario:senha@host:porta`.\n  - Tor, se você usa: `socks5:\u002F\u002F127.0.0.1:9150` com o **Tor Browser** aberto, ou `socks5:\u002F\u002F127.0.0.1:9050` para o **daemon** `tor`.\n  - **Deixe vazio** para o plugin detectar um Tor local automaticamente e, se não achar, buscar uma proxy gratuita validada.\n- **Excluded countries**: códigos de país de duas letras separados por vírgula que nunca são usados (padrão: `BR`). O país conferido é o de **saída real**, medido através da proxy, não o que a lista afirma.\n\n## Solução de problemas\n\n- **Discord carregando infinitamente**: não deveria acontecer — sem saída pronta, o roteador segura o gateway por no máximo 12s e depois o solta para a conexão direta. Se mesmo assim persistir, com o Discord fechado abra `%APPDATA%\u002FEquicord\u002Fsettings\u002Fsettings.json` (ou `...\u002FVencord\u002F...`; no Linux `~\u002F.config\u002FEquicord\u002Fsettings\u002Fsettings.json`, e com Discord por Flatpak `~\u002F.var\u002Fapp\u002Fcom.discordapp.Discord\u002Fconfig\u002FEquicord\u002Fsettings\u002Fsettings.json`) e coloque `\"GoLiveBypass\": { \"enabled\": false }`. Em `native-settings.json` a única chave deste plugin é `pool` (as saídas guardadas); apagá-la devolve tudo ao estado inicial. Se você usou uma versão anterior, apague também `verifiedProxy`, `bootPending` e `lastKnownProxy`, que não são mais lidas.\n- **\"GoLiveBypass is reconnecting behind the proxy\"**: a saída ficou pronta depois de o gateway já ter conectado, então a sessão nasceu desprotegida e o servidor manteve o bloqueio. O plugin procura uma saída que responda e recarrega o cliente sozinho para a sessão renascer atrás dela. São no máximo duas tentativas: sem esse teto, um bloqueio que a proxy não resolve viraria recarregamento sem fim.\n- **Meu proxy pede usuário e senha**: coloque no próprio endereço, `socks5:\u002F\u002Fusuario:senha@host:porta`. Funciona para SOCKS5 e para proxy HTTP. Se a senha tiver `@` ou `:`, codifique esses caracteres (`@` vira `%40`, `:` vira `%3A`) — sem isso não dá para saber onde a senha termina. A senha nunca aparece no registro.\n- **\"GoLiveBypass could not unlock this session\"**: depois das recargas automáticas o servidor continuou bloqueando. O motivo vem junto, entre parênteses: `nenhuma saida respondeu` (nenhuma candidata passou no teste TLS real naquele momento — tente de novo, ou use Tor \u002F uma proxy sua), `tentativas esgotadas` (duas recargas não bastaram), `roteador desligado` (a regra de rota não pegou — veja o registro).\n- **Quer ver o que aconteceu**: rode `\u002Fgolivebypass` em qualquer canal, ou abra o arquivo em `%LOCALAPPDATA%\\GoLiveBypass\\golivebypass.log` (veja [O registro](#o-registro-o-que-o-plugin-anotou)). Ele copia um diagnóstico com o estado das travas, da transmissão, da região e o registro do processo principal — qual proxy foi testada, quanto tempo levou, em que país ela sai e por que foi recusada.\n- **A região da call não mudou**: saia e entre de novo no canal. Canais de servidor com região fixada por um admin ignoram sua preferência, e numa call que já está rolando a região já foi decidida.\n- **Captcha ou verificação de telefone no login**: o Discord marca muitos IPs de proxies públicas. Use Tor ou outra proxy.\n- **`Cannot find matching keyid` ao instalar as dependências**: é o corepack, não o plugin. Ele cria o atalho do `pnpm` antes de saber que versão usar, e na primeira execução busca essa versão no registro do npm conferindo a assinatura com chaves embutidas nele — as que vêm no Node 22 estão vencidas. O instalador detecta isso e instala o pnpm pelo npm. Se estiver fazendo à mão, rode `npm install -g pnpm` e siga com `pnpm install`.\n- **Erro de build `Could not resolve \".\u002Fplugins\u002Fuserplugins\"`**: você copiou a pasta para dentro de `src\u002Fplugins\u002F` por engano. O caminho certo é `src\u002Fuserplugins\u002FgoLiveBypass` — a pasta `userplugins` fica em `src\u002F`, **ao lado** de `plugins`, e pode ser necessário criá-la.\n- **Plugin não aparece na lista**: confirme que a pasta está em `src\u002Fuserplugins\u002FgoLiveBypass` (com `index.tsx` e `native.ts`) e que você rodou `pnpm build` + `pnpm inject` e reiniciou o Discord.\n\n## O registro: o que o plugin anotou\n\nTudo o que o bypass faz vai para um arquivo, no plugin e no standalone, **no mesmo lugar**:\n\n| sistema | caminho |\n|---|---|\n| Windows | `%LOCALAPPDATA%\\GoLiveBypass\\golivebypass.log` |\n| Linux | `~\u002F.local\u002Fshare\u002FGoLiveBypass\u002Fgolivebypass.log` |\n| Linux, plugin com Discord por Flatpak | `~\u002F.var\u002Fapp\u002Fcom.discordapp.Discord\u002Fdata\u002FGoLiveBypass\u002Fgolivebypass.log` |\n\nA linha do Flatpak não é uma exceção do plugin: ele grava em `$XDG_DATA_HOME\u002FGoLiveBypass`, e dentro do sandbox essa variável aponta para outro lugar. Pelo mesmo motivo as configurações do mod ficam em `~\u002F.var\u002Fapp\u002Fcom.discordapp.Discord\u002Fconfig\u002FEquicord\u002Fsettings\u002Fsettings.json` (ou `...\u002FVencord\u002F...`), e não em `~\u002F.config`. O standalone não muda de lugar: o `.js` mora fora do sandbox, e o registro fica ao lado dele.\n\nEle é cortado sozinho quando passa de 256 KB, então não cresce sem fim.\n\nNo plugin, `\u002Fgolivebypass` copia esse mesmo conteúdo já junto com o estado da sessão, pronto para colar num relato. No standalone o arquivo é o único caminho, porque não há interface para um comando.\n\nO registro responde as perguntas que a tela não responde:\n\n- **qual saída foi escolhida, em quanto tempo e de que país** — e quantas foram testadas e recusadas antes dela\n- **se o servidor atribuiu o bloqueio a você nesta sessão** (`atribuicao do video guard`), que é a diferença entre \"a proxy funcionou\" e \"a proxy subiu tarde demais\"\n- **se a sessão precisou ser recarregada**, e por quê\n- **a região que o Discord escolheu** e a lista completa que ele considerou\n\nUm registro típico de uma abertura que deu certo:\n\n```\n============================================================\nabrindo | win32 x64 | electron 42.7.1 | chrome 148.0.7778.280\nconfiguracao | proxy automatico | roteamento gateway | regiao de call automatica | paises fora BR\nroteador local de pe na porta 51234\nrota aplicada: gateway.discord.gg, remote-auth-gateway.discord.gg pelo roteador local, o resto em DIRECT\n25 candidatas depois do ranqueamento\nsocks5:\u002F\u002F... recusada: saida em BR\nsocks5:\u002F\u002F... passou: 1535ms, saida em DE\nsaida escolhida: socks5:\u002F\u002F...\nsessao aberta | atribuicao do video guard: null\n  o cliente aceita video? supports true | supportsInApp true | desktop true\no servidor liberou video nesta sessao, gateway por socks5:\u002F\u002F...\n```\n\nA linha que importa é `atribuicao do video guard: null`. **`null` significa que o servidor nem tentou te bloquear** — foi o que a proxy comprou. Se aparecer `variantId: 2`, o gateway subiu pelo seu IP real, e o plugin vai recarregar para tentar de novo.\n\n---\n\n---\n\n**Daqui para baixo é a parte técnica** — como o bypass funciona por dentro, e como instalar tudo à mão. Se você só queria usar, já está pronto.\n\n## Por que este plugin existe\n\nEm agosto de 2026, a ANPD [ordenou que o Discord suspendesse as transmissões ao vivo (Go Live) no Brasil](https:\u002F\u002Fwww.gov.br\u002Fanpd\u002Fpt-br\u002Fassuntos\u002Fnoticias\u002Fem-medida-preventiva-anpd-determina-que-discord-suspenda-transmissoes-ao-vivo-no-brasil), pouco depois de o país ter bloqueado o X (Twitter). Para quem depende dessas plataformas para se comunicar, organizar e denunciar, o recado foi claro: o acesso e a privacidade dos brasileiros na internet podem ser cortados por canetaço.\n\nO GoLiveBypass nasce dessa luta. Ele é uma ferramenta de **privacidade e resistência à censura**: garante que o momento mais sensível da sua sessão — a autenticação, quando sua conta é vinculada ao seu endereço de IP — aconteça atrás de uma proxy anônima.\n\n**O que ele entrega, verificado na prática:** como a sessão do Discord nasce inteira atrás da proxy, o **Go Live e a câmera voltam a funcionar** para contas brasileiras — veja a seção abaixo.\n\n## Go Live no Brasil: por que funciona\n\nTestes práticos mostram que o bloqueio do Go Live funciona assim:\n\n- O Discord verifica sua região **apenas no momento em que você entra num canal de voz** (`VOICE STATE UPDATE`), usando o **IP da conexão WebSocket do gateway** — e **nunca reavalia** durante a chamada.\n- O WebSocket do gateway é aberto no boot do app. Se ele nasce atrás de uma proxy fora do Brasil, o gate de região libera telas e câmera para contas brasileiras.\n- A mídia (UDP) não passa por verificação nenhuma — ela pode sair direta pelo seu IP real sem derrubar a liberação.\n\nOu seja, o fluxo do GoLiveBypass — **o gateway nasce atrás da proxy e fica nela, enquanto todo o resto sai direto o tempo todo** — reproduz automaticamente o bypass manual \"ligar VPN, abrir o Discord, entrar na call, desligar a VPN\", sem a parte em que tudo ficava lento.\n\n**Ressalvas honestas:**\n\n- Se a saída morrer no meio da sessão, o batimento de 30 em 30 segundos costuma perceber antes da sua transmissão e já troca por uma reserva viva — a reconexão do gateway nasce atrás dela e a liberação sobrevive. Só quando *nenhuma* reserva responde é que a conexão cai para a direta, e aí a próxima entrada em canal de voz volta a ser avaliada como BR: o bypass procura outra saída, o plugin detecta o bloqueio na próxima abertura de sessão e recarrega sozinho. Um **Ctrl+R** resolve na hora se você não quiser esperar.\n- Isso depende de comportamento atual do Discord, que pode mudar a qualquer momento.\n- Usar proxy\u002FVPN para contornar a restrição pode violar os Termos de Serviço do Discord. Risco de punição à conta é baixo, mas existe — considere usar uma conta secundária.\n\n## Avisos importantes\n\n- **Só funciona no Discord para computador** com Equicord ou Vencord injetado, incluindo o Discord instalado por Flatpak. **Vesktop** tem suporte manual — veja [Instalação no Vesktop](#instalação-no-vesktop). Equibop e Snap não: o Equibop traz o mod embutido e não carrega de um checkout, e o Snap fica dentro de um squashfs somente leitura. Não funciona na versão de navegador\u002Fextensão.\n- **Proxies gratuitas são fracas para anonimato**: o operador da proxy vê seus metadados de conexão, muitas estão mortas ou lentas, e o Discord pode pedir captcha para IPs de proxies públicas. Para anonimato real, **use Tor**.\n- Usar clientes modificados viola os Termos de Serviço do Discord. Use por sua conta e risco.\n- A proxy carrega **só o gateway** (e também o login, se você ativar isso na configuração). Todo o resto — API, CDN, anexos, atualizações e a mídia das calls — sai direto com seu IP real o tempo todo.\n- **O plugin nunca te deixa sem Discord.** Quem conversa com a proxy é um roteador local do plugin: se a saída falhar, aquela conexão cai para a direta e a busca por outra recomeça em segundo plano. O pior caso é abrir o Discord *sem* Go Live, nunca ficar sem conseguir abrir.\n\n## Como funciona\n\nSão duas travas independentes, e o plugin desarma as duas de formas diferentes.\n\n### Trava 1: o cliente se auto-bloqueia\n\nO Discord embarca um experimento de usuário que desliga vídeo. Quando o servidor te coloca nele, o cliente desabilita sozinho os botões de câmera e Go Live: é o `MediaEngineStore.supportsInApp(VIDEO)` que passa a retornar falso, e com ele o `canGoLive`.\n\nO plugin esvazia a tabela de variações desse experimento. Qualquer bucket que o servidor atribua passa a cair na configuração padrão, que tem vídeo ligado. Isso destrava o cliente inteiro de uma vez, porque todos os consumidores leem do mesmo lugar.\n\n### Trava 2: o servidor recusa a transmissão\n\nDestravar o cliente não basta: o servidor decide separadamente se você pode transmitir, e essa decisão é tomada **uma única vez, quando você entra no canal de voz**, a partir do IP de origem da **conexão de gateway** (o WebSocket que carrega o `VOICE_STATE_UPDATE`). Depois disso não há reavaliação: o servidor de voz só transporta mídia por UDP.\n\nPor isso o plugin proxia **só o gateway**:\n\n1. Na abertura do app, o plugin sobe um **roteador SOCKS local** (só escuta em `127.0.0.1`) e instala uma regra PAC que aponta unicamente os hosts de gateway para ele. Todo o resto segue a regra que o seu sistema já usava.\n2. O roteador escolhe a saída — a sua proxy, um Tor local, ou uma gratuita testada — e segura o gateway por **até 12 segundos** enquanto isso. Estourado o prazo, aquela conexão sai direta: perde-se o Go Live daquela sessão, nunca o Discord.\n3. O gateway nasce atrás da saída e **permanece roteado pela sessão inteira**: se a rede oscilar e o WebSocket reconectar, ele renasce pela mesma saída e a liberação sobrevive. Enquanto a sessão está de pé, um **batimento a cada 30 segundos** reconfere a saída ativa e as reservas e promove uma reserva viva assim que a ativa falha — antes de a reconexão precisar dela. Só se nada responder é que a conexão cai para a direta, e tudo isso vai para o registro.\n4. Cerca de 1,5s depois da sessão abrir (a atribuição do experimento só é reavaliada alguns ticks após o `CONNECTION_OPEN`), o plugin confere o veredito no servidor e te diz num toast se a sessão ficou liberada de verdade. Se não ficou, ele recarrega o cliente atrás da saída — no máximo duas vezes, para nunca virar tela de carregamento infinita.\n\nO momento ainda importa, mas a corrida mudou de lado: quem espera é o socket do gateway, segurado pelo roteador, e não a abertura inteira do app.\n\n### Como as proxies gratuitas são escolhidas\n\n- A lista da ProxyScrape já traz `alive`, `uptime` e `timeout`. O plugin **ranqueia por esses campos** (uptime >= 90, timeout \u003C= 1500ms) em vez de sortear a lista.\n- Descarta a porta 4145: numa amostra medida, 14 de 14 proxies nessa porta interceptavam TLS com certificado forjado.\n- Testa as candidatas **em lotes de 12 correndo juntas, e a primeira que responde bem ganha** — testar uma por uma somava dezenas de segundos bem na janela em que o gateway conecta.\n- O teste é um **handshake TLS real através do túnel**: o `cdn-cgi\u002Ftrace` da Cloudflare prova túnel, certificado válido, **país de saída real** e IP de saída numa conexão só; em seguida uma conexão ao `gateway.discord.gg` prova que o Discord é alcançável por ela (qualquer resposta HTTP serve — o gateway responde 404 a um GET comum, e 404 já prova o caminho).\n- O país conferido é o de **saída real**, medido através da proxy, porque o `countryCode` da lista descreve o IP de entrada, que frequentemente é diferente do de saída.\n\nMedido: escolher aleatoriamente e testar só o handshake acerta 12% das vezes; ranquear e exigir TLS real acerta 60%. Ainda assim, um Tor local ganha de qualquer lista gratuita, e é por isso que o plugin o prefere.\n\n### Proteções contra travar o Discord\n\n- **Quem decide o fallback é o roteador, não o Chromium.** A regra PAC não tem alternativa do tipo `PROXY;DIRECT`: se a saída falha, a conexão cai para a direta *dentro* do roteador, com registro. Um proxy morto nunca deixa o Discord preso na tela de abertura — e nunca faz o Chromium desistir da regra em silêncio.\n- **Orçamento de espera por conexão**: o gateway aguarda uma saída por no máximo 12s; estourado, sai direto. Só o socket do gateway espera — a abertura do app nunca é segurada.\n- **Reservas mantidas vivas (batimento)**: até 5 saídas ficam guardadas num pote em `native-settings.json`, sob `pool`. A cada **30 segundos**, com a sessão já aberta, a saída ativa e todas as reservas são reconferidas com um túnel de verdade até o gateway do Discord. Quem erra o batimento perde a vez na hora: a ativa é trocada por uma reserva **testada há 30 segundos** no primeiro erro, e sai do pote no segundo erro seguido (um erro solto costuma ser congestionamento, não morte). Quando sobra menos de uma reserva viva de folga, o pote é reabastecido em segundo plano — sem trocar a saída ativa, que é o IP que o servidor já aceitou nesta sessão.\n- **Reservas correndo juntas, não em fila**: quando a saída ativa não entrega uma conexão, todas as reservas são tentadas **ao mesmo tempo** e a primeira que responder leva. Em fila, com 2,5s de prazo cada, a troca podia somar mais de dez segundos — tempo de sobra para o Chromium desistir do roteador.\n- **Reutilizar só depois de testar de novo**: no boot, as saídas guardadas são revalidadas (orçamento de 2,5s) antes de valerem. Descobrir uma do zero leva de 8 a 23 segundos; o que causava o travamento antigo era reaplicar uma proxy morta às cegas, e isso não acontece mais.\n- **A regra de proxy do sistema é respeitada**: se ela varia por host (proxy corporativo ou PAC de verdade), o plugin se recusa a ligar o roteador em vez de atropelar a política da rede.\n\n## Dependências: o que baixar e como instalar\n\n> Se você usou o instalador automático acima, **pule esta seção e a próxima**. O instalador confere o que falta e oferece instalar sozinho. O que vem daqui em diante é o caminho manual, para quem prefere fazer cada passo à mão ou precisa entender o que está acontecendo.\n\nVocê precisa de **4 programas** antes de começar. Instale na ordem. Depois de instalar cada um, **feche e abra o terminal de novo** — o Windows só reconhece programas novos em terminais abertos depois da instalação.\n\n### 1. Git — o programa que baixa código do GitHub\n\nÉ ele que faz o `git clone` (baixar) deste repositório e do Equicord\u002FVencord.\n\n**Windows (jeito mais fácil):**\n1. Abra o **PowerShell** (tecla Windows → digite \"PowerShell\" → Enter)\n2. Rode: `winget install Git.Git`\n3. Ou, se preferir baixar manualmente: entre em [git-scm.com\u002Fdownload\u002Fwin](https:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin), baixe o instalador de 64-bit e clique em **Next** em tudo (as opções padrão são as certas)\n\n**Linux:** `sudo apt install git` (Debian\u002FUbuntu) ou o equivalente da sua distro.\n**macOS:** `brew install git`.\n\n**Confira se deu certo** (num terminal novo): `git --version` → deve mostrar algo como `git version 2.x.x`. Se disser \"comando não encontrado\", feche e abra o terminal.\n\n### 2. Node.js 22 ou superior — o motor que compila o plugin\n\nO Equicord\u002FVencord é feito em TypeScript, e quem transforma isso no programa final é o Node. **Versão menor que 22 quebra o build.**\n\n**Windows\u002FmacOS:**\n1. Entre em [nodejs.org](https:\u002F\u002Fnodejs.org\u002F) e baixe o botão verde **LTS** (qualquer LTS a partir do 22)\n2. Instale clicando em **Next** em tudo — deixe marcada a opção de adicionar ao PATH (vem marcada)\n3. Ou pelo terminal: `winget install OpenJS.NodeJS.LTS`\n\n**Linux:** use o [NodeSource](https:\u002F\u002Fgithub.com\u002Fnodesource\u002Fdistributions) — o Node dos repositórios da distro costuma ser velho demais.\n\n**Confira:** `node --version` → precisa mostrar `v22.x.x` ou maior.\n\n### 3. pnpm — o instalador de peças do projeto\n\nO projeto usa **pnpm** (e não o npm que vem com o Node) para baixar as bibliotecas do build. Você não baixa instalador nenhum: o Node já traz o **Corepack**, que ativa o pnpm com dois comandos.\n\nNum terminal (depois de instalar o Node):\n\n```bash\ncorepack enable\ncorepack prepare pnpm@latest --activate\n```\n\nSe der erro de permissão no Windows, abra o PowerShell **como administrador** e rode de novo. Se o Corepack não existir, a alternativa é: `npm install -g pnpm`.\n\n**Confira:** `pnpm --version` → o projeto foi testado com pnpm 11.\n\n### 4. Discord para computador — onde o plugin vai rodar\n\nO plugin **só funciona no app de computador** (ele usa recursos do Electron que o navegador não tem):\n\n- **Discord normal**: baixe em [discord.com\u002Fdownload](https:\u002F\u002Fdiscord.com\u002Fdownload) (stable, PTB ou Canary servem). O Flatpak (`com.discordapp.Discord`) também serve, do sistema ou do usuário; ou\n- **Vesktop\u002FEquibop**: apps alternativos que já trazem o mod embutido. Os instaladores daqui não mexem neles, mas o **Vesktop tem suporte manual** — veja [Instalação no Vesktop](#instalação-no-vesktop).\n- **Não funciona** no Discord aberto no navegador nem no celular.\n\n### Opcional: Tor — só se você quiser mais estabilidade\n\n**Não é necessário.** Por padrão o plugin escolhe e testa uma proxy gratuita sozinho, sem nenhuma dependência extra.\n\nO Tor é só uma opção para quem quer mais estabilidade: ele é mais rápido e não morre no meio do caminho como as proxies públicas. Se você já tiver o [Tor Browser](https:\u002F\u002Fwww.torproject.org\u002Fdownload\u002F) aberto, o plugin detecta sozinho em `127.0.0.1:9150`; o daemon `tor` fica em `9050`.\n\n## Instalação: passo a passo completo\n\n> Este é o caminho manual. O [instalador automático](#instalação-automática-recomendado) faz tudo isto sozinho; siga daqui só se preferir fazer na mão.\n\nEscolha **Equicord** ou **Vencord** — os dois funcionam, o processo é idêntico. Os exemplos usam Equicord; para Vencord, troque o link do clone por `https:\u002F\u002Fgithub.com\u002FVendicated\u002FVencord` e a pasta para `Vencord`.\n\n### Passo 1 — Baixe o código do Equicord\n\nAbra o terminal, vá para a pasta onde quer guardar o projeto e clone:\n\n```bash\ncd Documents\ngit clone https:\u002F\u002Fgithub.com\u002FEquicord\u002FEquicord\ncd Equicord\n```\n\n### Passo 2 — Instale as bibliotecas do build\n\n```bash\npnpm install\n```\n\nIsso baixa tudo que o Equicord precisa para compilar (demora um pouco na primeira vez, é normal).\n\n### Passo 3 — Baixe o plugin e coloque na pasta certa\n\nDuas formas de baixar este repositório:\n\n- **Pelo terminal** (estando fora da pasta Equicord): `git clone https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass`\n- **Pelo navegador**: abra [github.com\u002Fbezumiya\u002FGoLiveBypass](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass), clique no botão verde **Code → Download ZIP** e extraia o arquivo\n\nDepois copie a pasta **`goLiveBypass`** (a que contém `index.tsx` e `native.ts`) para dentro de:\n\n```\nEquicord\u002Fsrc\u002Fuserplugins\u002FgoLiveBypass\n```\n\n**Atenção aos detalhes que mais quebram:**\n\n- A pasta `userplugins` **não existe por padrão** — crie ela dentro de `src\u002F`\n- Ela fica em `src\u002Fuserplugins`, **ao lado** de `src\u002Fplugins` — **nunca dentro** de `src\u002Fplugins` (isso gera o erro `Could not resolve \".\u002Fplugins\u002Fuserplugins\"` no build)\n- No final, o caminho dos arquivos deve ser exatamente `src\u002Fuserplugins\u002FgoLiveBypass\u002Findex.tsx` e `src\u002Fuserplugins\u002FgoLiveBypass\u002Fnative.ts`\n\n### Passo 4 — Compile\n\n```bash\npnpm build\n```\n\nIsso gera a pasta `dist\u002F` com o Equicord modificado já incluindo o plugin. Se aparecer algum erro vermelho, leia a seção **Solução de problemas** antes de tentar de novo.\n\n### Passo 5 — Injete no Discord\n\n**Feche o Discord completamente antes** (ícone na bandeja perto do relógio → botão direito → **Quit Discord**). Depois:\n\n```bash\npnpm inject\n```\n\nO instalador abre uma janelinha perguntando **qual Discord** você usa (Stable, PTB ou Canary) — escolha o seu e confirme. É isso que \"injetar\" faz: ele aponta o seu Discord para o build que você compilou. Para desfazer depois, basta rodar `pnpm uninject` na mesma pasta.\n\n### Passo 6 — Ative o plugin e use\n\n1. Abra o Discord\n2. Vá em **Configurações → Equicord (ou Vencord) → Plugins** e ative **GoLiveBypass**\n3. Deixe **Voice region** em `Automatic`, que é o padrão (leia o aviso na seção [Configuração](#configuração) antes de mudar)\n4. Reinicie o Discord por completo (bandeja, Quit). O roteador local sobe antes do gateway conectar, e só ele passa pela proxy\n5. Entre num canal de voz: **Go Live e câmera liberados**. Quem escolhe o servidor de voz é o Discord, e pode não ser o brasileiro. Não force `brazil` em **Voice region** sem ler o aviso na seção Configuração\n\n## Instalação no Vesktop\n\nO **Vesktop** é um cliente alternativo que já traz o Vencord embutido, então o fluxo muda em dois pontos: **não use `pnpm inject`** (não há Discord para injetar) e, no fim, aponte o próprio Vesktop para o build que você compilou.\n\nO processo abaixo é o mesmo do [passo a passo completo](#instalação-passo-a-passo-completo), com as diferenças marcadas:\n\n### Passo 1 — Baixe o código do Vencord\n\nNo terminal, vá para a pasta onde quer guardar o projeto e clone:\n\n```bash\ncd Documents\ngit clone https:\u002F\u002Fgithub.com\u002FVendicated\u002FVencord\ncd Vencord\n```\n\n### Passo 2 — Instale as bibliotecas do build\n\n```bash\npnpm install\n```\n\n### Passo 3 — Baixe o plugin e coloque na pasta certa\n\n1. Clone este repositório: `git clone https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass`\n2. Copie a pasta **`goLiveBypass`** (a que contém `index.tsx` e `native.ts`) para dentro de:\n\n```\nVencord\u002Fsrc\u002Fuserplugins\u002FgoLiveBypass\n```\n\n**Atenção aos detalhes que mais quebram:**\n\n- A pasta `userplugins` **não existe por padrão** — crie ela dentro de `src\u002F`\n- Ela fica em `src\u002Fuserplugins`, **ao lado** de `src\u002Fplugins` — **nunca dentro** de `src\u002Fplugins`\n- No final, o caminho dos arquivos deve ser exatamente `src\u002Fuserplugins\u002FgoLiveBypass\u002Findex.tsx` e `src\u002Fuserplugins\u002FgoLiveBypass\u002Fnative.ts`\n\n### Passo 4 — Compile\n\n```bash\npnpm build\n```\n\nIsso gera a pasta `dist\u002F` com o Vencord modificado já incluindo o plugin.\n\n### Passo 5 — Aponte o Vesktop para o seu build\n\n1. Abra o **Vesktop**\n2. Vá em **Vesktop Settings** (Configurações do Vesktop)\n3. Role até a seção **Vencord Location**\n4. Clique em **Change** (Mudar) e selecione a pasta **`dist`** dentro do seu clone do Vencord (ex.: `Documents\u002FVencord\u002Fdist`)\n5. Feche e reabra o Vesktop por completo\n\n> **Se o Vesktop for Flatpak**, o caminho pode virar `\u002Frun\u002F1000\u002F...` — um caminho temporário do sandbox que quebra no próximo reinício. Para resolver, dê ao sandbox acesso à pasta do build:\n>\n> ```bash\n> flatpak override dev.vencord.Vesktop --filesystem=\"$HOME\u002FDocuments\u002FVencord\"\n> ```\n\n### Passo 6 — Ative o plugin e use\n\n1. Abra o Vesktop\n2. Vá em **Configurações → Vencord → Plugins** e ative **GoLiveBypass**\n3. Deixe **Voice region** em `Automatic`, que é o padrão (leia o aviso na seção [Configuração](#configuração) antes de mudar)\n4. Reinicie o Vesktop por completo (bandeja, Quit)\n5. Entre num canal de voz: **Go Live e câmera liberados**\n\n## Estrutura\n\n```\ngoLiveBypass\u002F\n├── index.tsx                      # renderer: patches do video guard e do stream, seletor de região,\n│                                  #   override do RTCRegionStore, veredito da sessão, eventos de fluxo\n└── native.ts                      # processo principal: roteador SOCKS local em 127.0.0.1, PAC por host,\n                                   #   escolha da saída com teste TLS real, pote de reservas, registro,\n                                   #   nova tentativa com recarga\n\ninstaller\u002F\n├── GoLiveBypass-Installer.bat     # Windows: dois cliques, libera a execução e chama o .ps1\n├── GoLiveBypass-Installer.ps1     # Windows: instalador automático\n└── golivebypass-installer.sh      # Linux: mesmo instalador, mesmo menu\n\nstandalone\u002F\n├── golivebypass.js                # o bypass inteiro, sem build: proxy, roteador SOCKS,\n│                                  #   regra por host, registro\n├── GoLiveBypass-Standalone.bat    # Windows: dois cliques\n├── GoLiveBypass-Standalone.ps1    # Windows: instala direto no Discord\n└── golivebypass-standalone.sh     # Linux: o mesmo\n\ngolive-gui\u002F                        # app Electron de um clique (Windows, macOS e Linux AppImage): injeta o\n                                   #   standalone, mora na bandeja \u002F barra de menus e reverte\n                                   #   ao sair pelo ícone de lá. scripts\u002Fsync-bypass.mjs\n                                   #   mantém a cópia embutida idêntica ao standalone\n\ntests\u002F\n└── test-posix.sh                  # suíte de portabilidade: roda os instaladores em containers\n                                   #   (podman\u002Fdocker) com sh, dash, ash, bash, zsh, ksh e mksh\n\nassets\u002F\n└── instalacao.gif                 # o vídeo do começo deste README\n```\n\n## Licença\n\nGPL-3.0-or-later, mesma licença do Vencord\u002FEquicord. Veja [LICENSE](LICENSE).\n\n## Autor\n\n**bezumiya**\n\n- GitHub: [bezumiya\u002FGoLiveBypass](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass)\n- Twitter: [@obezumiya](https:\u002F\u002Ftwitter.com\u002Fobezumiya)\n- Discord: `1366453661970071633`\n\n## Agradecimentos\n\n**Obrigado ao [mazxxy](https:\u002F\u002Fgithub.com\u002Fmazxxy)** pela ideia que virou a espinha dorsal do projeto.\n\nEle foi o primeiro a notar que o `session.setProxy` vale para a sessão inteira e a propor,\nna [PR #3](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass\u002Fpull\u002F3), o desenho que usamos até hoje:\num SOCKS5 local com um PAC embutido mandando **só o gateway** pela proxy. O standalone nasceu\nexatamente assim, e o plugin adotou o mesmo roteador depois. A PR ficou parada tempo demais\npor culpa minha; ela foi mesclada pela autoria, porque as linhas já tinham sido reescritas,\nmas a ideia é dele.\n\n**Obrigado ao [Vithor](https:\u002F\u002Fgithub.com\u002FVith0r)** pelo instalador.\n\nEle escreveu o primeiro instalador do GoLiveBypass por conta própria, e foi ele quem mostrou\nque dava para automatizar tudo isso num script só. O instalador que está aqui hoje nasceu\ndesse trabalho.\n\n**Obrigado ao [cleo-dev](https:\u002F\u002Fgithub.com\u002Fcleo-dev)** pela interface gráfica.\n\nEle construiu o aplicativo inteiro, do zero, e com ele o projeto passou a alcançar quem nunca\nvai abrir um terminal — que sempre foi a maior barreira aqui. Antes disso, usar o GoLiveBypass\nexigia entender o que é um checkout, um gerenciador de pacotes e uma etapa de compilação.\n\n**Obrigado ao [Eduardo Vasconcelos](https:\u002F\u002Fgithub.com\u002FEduardoVasconceloss)** pelo fork [StreamFix](https:\u002F\u002Fgithub.com\u002FEduardoVasconceloss\u002FStreamFix).\n\nEle passou o plugin por uma pilha de revisões adversariais e encontrou erros de verdade: o\nveredito da sessão lido cedo demais (a atribuição do experimento não vale no instante do\n`CONNECTION_OPEN`), o teto de tentativas furado por reconexões em rajada, e a regra de proxy\ndo sistema atropelada por uma regra fixa. Ele também portou o roteador SOCKS local — que aqui\nsó existia no standalone — para dentro do plugin. As correções e melhorias dele foram\nadotadas neste repositório, e o GoLiveBypass é melhor por causa delas.\n\n**Obrigado ao [gabrigode](https:\u002F\u002Fgithub.com\u002Fgabrigode)** pelo suporte a Flatpak no instalador de Linux.\n\nO Discord de Flatpak parecia intocável e o instalador nem olhava para ele. O PR do Gabriel\nachou o\ndeploy do Flatpak (tanto o do sistema quanto o do usuário), ensinou o instalador a liberar a\npasta do bypass para o sandbox com `flatpak override`, e documentou cada pegadinha — inclusive\nque um `flatpak update` refaz o deploy inteiro e leva a injeção junto, então é preciso rodar\no instalador de novo depois de atualizar.\n\n**Obrigado à [StellaThimoty](https:\u002F\u002Fgithub.com\u002FStellaThimoty) e ao [pdl-clay](https:\u002F\u002Fgithub.com\u002Fpdl-clay)** pelo caminho do Vesktop.\n\nEla abriu a issue mostrando que dava para instalar o plugin no Vesktop apontando o \"Vencord\nLocation\" para um build manual — e testou até funcionar. Ele transformou o relato dela no\npasso a passo completo que está no README, com direito à pegadinha do Flatpak.\n\n**Obrigado ao [Victor Mello](https:\u002F\u002Fgithub.com\u002Fvictorsvart)** pelo fork [GUI-MacOS](https:\u002F\u002Fgithub.com\u002Fvictorsvart\u002FGoLiveBypass-GUI-MacOS).\n\nA interface gráfica existia apenas no Windows, então ele fez a portabilidade da GUI para o macOS.\n\n**Obrigado ao [Claude](https:\u002F\u002Fclaude.com\u002Fclaude-code)** pela mão no código. ❤️\n\nMuita coisa daqui foi escrita e depurada em par com ele — principalmente os bugs que só\naparecem medindo, não lendo.\n\n# English\n\n**GoLiveBypass** is an **Equicord\u002FVencord** plugin, made by a Brazilian developer, that **restores Go Live and camera for Brazilian Discord users**. On every launch it brings up a small local SOCKS router (loopback only) and points only Discord's gateway WebSocket hosts at it; the router carries that traffic through an exit outside Brazil — your own proxy, a local Tor, or a free proxy picked and tested for you — while **everything else stays direct at full speed**. Discord's region gate, evaluated once at voice-channel join from the gateway origin IP and never re-evaluated mid-call, then unlocks Go Live and camera. As a bonus, the login itself can optionally be routed too, hiding your real IP during authentication.\n\nIt was written after Brazil's data protection authority (ANPD) [ordered Discord to suspend live streaming (Go Live) in Brazil](https:\u002F\u002Fwww.gov.br\u002Fanpd\u002Fpt-br\u002Fassuntos\u002Fnoticias\u002Fem-medida-preventiva-anpd-determina-que-discord-suspenda-transmissoes-ao-vivo-no-brasil) in August 2026, shortly after the country blocked X (Twitter). Because the gateway stays routed for the whole session, reconnects are born behind the same exit and the unlock survives network hiccups; if the exit dies, the router fails over to a tested reserve or fails open to a direct connection — never leaving you unable to open Discord. If the server still reports the session blocked, the plugin reloads the client behind the exit, at most twice. Bypassing the restriction may violate Discord's ToS.\n\n- Desktop Discord with Equicord or Vencord injected, Flatpak included. **Vesktop is supported manually** — see [Instalação no Vesktop](#instalação-no-vesktop). Equibop and Snap are not: Equibop bundles the mod instead of loading it from a checkout, and Snap lives in a read-only squashfs. Not available on the browser extension.\n- Dependencies: Git, Node.js 22+, pnpm 11 (via `corepack enable`), and a desktop Discord client. Tor is optional, not required: by default the plugin picks and validates a free proxy on its own.\n- **Your calls stay on the region you pick.** Creating the session abroad makes Discord rank foreign voice servers, so the plugin overrides the three `RTCRegionStore` getters that feed `preferred_region` \u002F `preferred_regions` in the gateway `VOICE_STATE_UPDATE`. The override is evaluated at read time, so Discord's latency test cannot undo it, and it writes nothing into Discord's persisted state, so the region is not left pinned after you remove the plugin. Restored on `stop()`.\n- Proxy order: your manual proxy, then the exits saved from last boots (revalidated), then a local Tor (`127.0.0.1:9150` for Tor Browser, `9050` for the daemon), then a validated free proxy.\n- Free proxies are weak for anonymity — prefer Tor.\n- Free proxies are ranked by the `alive` \u002F `uptime` \u002F `timeout` metadata the list already returns, port 4145 is dropped (measured 14\u002F14 TLS interception), candidates race in batches of 12 and the first good one wins, and the test is a real TLS handshake through the tunnel against Cloudflare's trace (proving tunnel, valid certificate, real exit country and exit IP in one connection) followed by a reachability check against `gateway.discord.gg`. Up to 5 verified exits are kept for 24h in a pool. Measured: random pick with a handshake-only test works 12% of the time, ranked with a real TLS test works 60%.\n- It cannot leave you unable to open Discord: the fallback decision lives inside the local router, not in the PAC (no `PROXY;DIRECT` for Chromium to silently prefer), a per-connection 12s stall budget fails open to direct, reserve exits take over mid-session, and a system proxy policy that varies per host (corporate PAC) makes the plugin refuse to enable rather than trample it.\n- Install: copy the `goLiveBypass` folder into `src\u002Fuserplugins\u002F` of your Equicord or Vencord clone, then `pnpm install && pnpm build && pnpm inject`, fully restart Discord, and enable **GoLiveBypass** in plugin settings. On **Vesktop**, skip `pnpm inject` and point Vesktop's *Vencord Location* at your build's `dist` folder instead (see [Instalação no Vesktop](#instalação-no-vesktop)).\n- Made by **bezumiya** — [GitHub](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass), [Twitter](https:\u002F\u002Ftwitter.com\u002Fobezumiya), Discord `1366453661970071633`.\n- Thanks to **[mazxxy](https:\u002F\u002Fgithub.com\u002Fmazxxy)** for the idea that became the project's backbone: a local SOCKS5 with an embedded PAC routing only the gateway through the proxy ([#3](https:\u002F\u002Fgithub.com\u002Fbezumiya\u002FGoLiveBypass\u002Fpull\u002F3), merged for authorship — the lines were later rewritten, but the design is his).\n- Thanks to **[mazxxy](https:\u002F\u002Fgithub.com\u002Fmazxxy)** for the idea this project is built on: he was the first to notice that `session.setProxy` applies to the whole session, and proposed the design still in use — a local SOCKS5 with an embedded PAC routing **only the gateway** through the proxy. Thanks to **[Vithor](https:\u002F\u002Fgithub.com\u002FVith0r)** for the installer: he wrote the first GoLiveBypass installer on his own and showed that the whole setup could be automated in a single script. Thanks to **[cleo-dev](https:\u002F\u002Fgithub.com\u002Fcleo-dev)** for the graphical app, built from scratch. Thanks to **[Eduardo Vasconcelos](https:\u002F\u002Fgithub.com\u002FEduardoVasconceloss)** for the [StreamFix](https:\u002F\u002Fgithub.com\u002FEduardoVasconceloss\u002FStreamFix) fork: his adversarial reviews found real bugs (verdict read too early, retry ceiling raced, system proxy policy trampled) and he ported the local SOCKS router into the plugin — fixes and improvements adopted here. Thanks to **[gabrigode](https:\u002F\u002Fgithub.com\u002Fgabrigode)** for the Linux installer improvements: Flatpak support for system and user installs, including the sandbox filesystem override. Thanks to **[StellaThimoty](https:\u002F\u002Fgithub.com\u002FStellaThimoty)** for finding and testing the manual Vesktop path, and to **[pdl-clay](https:\u002F\u002Fgithub.com\u002Fpdl-clay)** for turning it into the step-by-step guide in this README. Thanks to **[Victor Mello](https:\u002F\u002Fgithub.com\u002Fvictorsvart)** for the [GUI-MacOS](https:\u002F\u002Fgithub.com\u002Fvictorsvart\u002FGoLiveBypass-GUI-MacOS) fork: He ported the GUI app to MacOS. Thanks to **[Claude](https:\u002F\u002Fclaude.com\u002Fclaude-code)** for the hand on the code: much of this was written and debugged alongside it, mostly the bugs that only show up when you measure instead of read.\n- License: GPL-3.0-or-later.\n","GoLiveBypass 是一款专为巴西 Discord 用户设计的隐私增强型代理绕过工具，用于恢复因地区限制而被禁用的「Go Live」直播和摄像头功能。其核心机制是仅将 Discord 的 WebSocket 网关连接经由非巴西代理（如 Tor 或经测试的免费代理）中转，其余流量直连，兼顾可用性与性能；同时提供免命令行、免配置的图形化一键启动应用（Windows\u002FmacOS）。适用于巴西用户在桌面端 Discord 中进行屏幕共享、视频通话或直播等实时音视频协作场景。",2,"2026-08-22 02:30:03","CREATED_QUERY"]