DeepL Free API (No TOKEN required)
Go to file
Vincent Young a43aba64c1
fix(translate): seed cookie jar from www.deepl.com on first call
A real chrome-extension fetch() to oneshot-free.www.deepl.com inherits
whatever cookies the browser has on .deepl.com — at minimum
`userCountry=<iso2>` and `verifiedBot=false`, both of which the
deepl.com server sets on any page load. Our outbound bytes were
otherwise extension-identical but went out cookieless, which is a
distinguishable signal.

Wire a process-wide net/http/cookiejar onto the req.Client and trigger
a single warmup GET to https://www.deepl.com/translator on the first
translate call (sync.Once). The Set-Cookie response (userCountry,
verifiedBot) lands on .deepl.com, which the jar then automatically
echoes back on every subsequent POST to oneshot-free.www.deepl.com
(cookies set on .deepl.com match any *.deepl.com subdomain).

Verified outbound:
  Cookie: userCountry=JP; verifiedBot=false

Latency cost: first call after process start pays one extra HTTP GET
(~1s warmup); subsequent calls are unaffected (sync.Once + connection
keep-alive).

Note: we cannot replicate the _ga / _ga_<id> cookies a real user
would also carry — those are set client-side by GA's JS, which a
non-browser HTTP client can't execute. The userCountry+verifiedBot
pair already matches the "first-time visitor with JS disabled" profile,
which is the closest plausible non-browser approximation.
2026-05-22 12:03:55 +08:00
.github chore: bump Go version to 1.24.2 in Dockerfile, go.mod, and CI workflows 2025-04-08 14:27:01 -04:00
img docs: add img 2024-03-02 02:47:18 -05:00
service refactor: make service exportable (#183) 2025-04-08 13:53:20 -04:00
translate fix(translate): seed cookie jar from www.deepl.com on first call 2026-05-22 12:03:55 +08:00
.cross_compile.sh ci: fix compile error 2024-03-20 16:52:54 -04:00
.gitignore chore: add gitignore 2023-07-01 21:31:38 +08:00
compose.yaml Update compose.yaml 2024-12-22 14:18:30 -05:00
deeplx.service Update deeplx.service 2023-02-18 20:55:20 +08:00
Dockerfile Update Dockerfile to use Go 1.25 base image (#215) 2026-03-18 03:47:26 -07:00
go.mod chore(deps): upgrade to latest compatible versions 2026-05-22 11:57:03 +08:00
go.sum chore(deps): upgrade to latest compatible versions 2026-05-22 11:57:03 +08:00
install.sh Update install.sh 2023-02-18 20:57:58 +08:00
LICENSE Create LICENSE 2022-10-20 02:12:18 +08:00
main.go refactor: make service exportable (#183) 2025-04-08 13:53:20 -04:00
me.missuo.deeplx.plist Update README.md 2022-10-20 02:11:14 +08:00
README.md docs: remove icon 2024-11-30 19:56:38 -05:00
uninstall.sh feat(uninstall): Add DeepLX uninstallation script (#203) 2025-08-26 20:34:10 +08:00

GitHub Workflow Go Version Go Report GitHub License Docker Pulls Releases

How to use

!TIP]

Learn more about [📘 Using DeepLX](https://deeplx.owo.network) by checking it out.

Discussion Group

Telegram Group

Acknowledgements

Contributors

Activity

Alt

License

FOSSA Status