DeepL Free API (No TOKEN required)
Go to file
2024-04-23 00:53:43 -04:00
.github ci: update to go 1.22 2024-03-20 16:46:07 -04:00
img docs: add img 2024-03-02 02:47:18 -05: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 feat: support pro account (#105) 2024-04-23 00:50:11 -04:00
config.go feat: support pro account (#105) 2024-04-23 00:50:11 -04:00
deeplx.service Update deeplx.service 2023-02-18 20:55:20 +08:00
Dockerfile feat: support pro account (#105) 2024-04-23 00:50:11 -04:00
go.mod ci: update to go 1.22 2024-03-20 16:43:33 -04:00
go.sum ci: fix compile error 2024-03-20 16:52:54 -04: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 feat: support pro account (#105) 2024-04-23 00:50:11 -04:00
me.missuo.deeplx.plist Update README.md 2022-10-20 02:11:14 +08:00
README.md docs: fix cli arguments 2024-04-23 00:51:31 -04:00
translate.go fix: api host 2024-04-23 00:53:43 -04:00
types.go feat: support pro account (#105) 2024-04-23 00:50:11 -04:00
utils.go feat: support pro account (#105) 2024-04-23 00:50:11 -04:00

GitHub Workflow Go Version Go Report Maintainability GitHub License Docker Pulls Releases

Link Description Maintainer
OwO-Network/PyDeepLX Python Package for DeepLX Vincent Yang
OwO-Network/gdeeplx Golang Package for DeepLX Vincent Yang
ifyour/deeplx JS Package for DeepLX (JavaScript) ifyour
deeplx-serverless Serverless Package for DeepLX LegendLeo

Discussion Group

Telegram Group

Description

  • DeepLX is listening to 0.0.0.0:1188 by default. You can modify the listening port by yourself.
  • DeepLX is using DeepL Free API.
  • DeepLX is unlimited to the number of requests.

Usage

For Developer

Request Parameters

  • text: string
  • source_lang: string
  • target_lang: string

Response

{
  "alternatives": [
    "Did you hear about this?",
    "You've heard about this?",
    "You've heard of this?"
  ],
  "code": 200,
  "data": "Have you heard about this?",
  "id": 8356681003,
  "method": "Free",
  "source_lang": "ZH",
  "target_lang": "EN"
}

Custom Options

The following settings are optional and not required.

  • -port or -p : Listening port. Default is 1188.
  • -token : Access token. If you have set it up, each request needs to include Authorization in the Headers or token parameter in the URL Params.
  • -authkey : DeepL Official AuthKey. If you have set it up, after the 429 response, the official AuthKey will be used for the request. If multiple authKeys are used simultaneously, they need to be separated by commas.
  • -s: dl-session is the cookie for a DeepL Pro account. If you set this, you will be able to use another endpoint /v1/translate, which can effectively avoid 429.
  • /v2/translate : This endpoint is fully compatible with the DeepL official API. When using this endpoint, please strictly adhere to the request styles outlined in the official DeepL documentation. Note that in this endpoint, please use DeepL-Auth-Key $token in the Authorization, which is actually the Access Token, not the official Auth Key of DeepL.

Example of requesting a token-protected /v2/translate endpoint

curl -X POST 'http://localhost:1188/v2/translate' \
--header 'Authorization: DeepL-Auth-Key [yourAccessToken] [yourAuthKey]' \
--header 'Content-Type: application/json' \
--data '{
  "text": [
    "Hello, world!"
  ],
  "target_lang": "DE"
}'
# Please note that either `yourAccessToken` or `yourAuthKey` can be omitted.

Requesting a token-protected DeepLX API instance using the curl

curl -X POST http://localhost:1188/translate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_access_token" \
-d '{
    "text": "Hello, world!",
    "source_lang": "EN",
    "target_lang": "DE"
}'

or

curl -X POST http://localhost:1188/translate?token=your_access_token \
-H "Content-Type: application/json" \
-d '{
    "text": "Hello, world!",
    "source_lang": "EN",
    "target_lang": "DE"
}'

Run with Docker

# ghcr.io
docker run -itd -p 1188:1188 ghcr.io/owo-network/deeplx:latest

# custom environment variables
docker run -itd -p 1188:1188 -e "TOKEN=helloxxx" -e "AUTHKEY=xxxx:fx" -e "DL_SESSION=xxxxx" ghcr.io/owo-network/deeplx:latest

# dockerhub
docker run -itd -p 1188:1188 missuo/deeplx:latest

# custom environment variables
docker run -itd -p 1188:1188 -e "TOKEN=helloxxx" -e "AUTHKEY=xxxx:fx" -e "DL_SESSION=xxxxx" missuo/deeplx:latest

Run with Docker Compose

mkdir deeplx
cd deeplx
wget https://raw.githubusercontent.com/OwO-Network/DeepLX/main/compose.yaml
# modify environment variables
# environment:
  # - TOKEN=helloxxx
  # - AUTHKEY=xxxxxxx:fx
  # - DL_SESSION=xxxxx
# docker compose
docker compose up -d

Run on Linux Server

bash <(curl -Ls https://raw.githubusercontent.com/OwO-Network/DeepLX/main/install.sh)
# or
bash <(curl -Ls https://owo.nz/deeplx)

Run on Mac

brew tap owo-network/brew
brew install deeplx
brew services start owo-network/brew/deeplx

# Update to the latest version
brew update
brew upgrade deeplx
brew services restart owo-network/brew/deeplx

# View the currently installed version
brew list --versions deeplx

Manual

  1. Download the latest release of DeepL X.
sudo mv deeplx_darwin_amd64 /usr/local/bin/deeplx
sudo chmod +x /usr/local/bin/deeplx
  1. Download the me.missuo.deeplx.plist to ~/Library/LaunchAgents.
wget https://raw.githubusercontent.com/OwO-Network/DeepLX/main/me.missuo.deeplx.plist -O ~/Library/LaunchAgents/me.missuo.deeplx.plist
  1. Run following command.
launchctl load ~/Library/LaunchAgents/me.missuo.deeplx.plist
launchctl start ~/Library/LaunchAgents/me.missuo.deeplx.plist

Install from AUR

paru -S deeplx-bin

After installation, start the daemon with the following command.

systemctl daemon-reload
systemctl enable deeplx

Special thanks to AsukaMinato for maintaining the updates of ArchLinux packages.

Run on Sealos

Setup on Bob App

  1. Install bob-plugin-deeplx on Bob.

  2. Setup the API. (If you use Brew to install locally you can skip this step) c5c19dd89df6fae1a256d

Setup on immersive-translate

It is not recommended, because the immersive-translate will send many requests in a short time, which will cause the DeepL API to block your IP.

  1. Install Latest immersive-translate on your browser.

  2. Click on Developer Settings in the bottom left corner. Enable Beta experimental features.

  3. Set the URL. (If you are not deploying locally, you need to change 127.0.0.1 to the IP of your server)

6a48ba28621f2465028f0

Use in Python

import httpx, json

deeplx_api = "http://127.0.0.1:1188/translate"

data = {
	"text": "Hello World",
	"source_lang": "EN",
	"target_lang": "ZH"
}

post_data = json.dumps(data)
r = httpx.post(url = deeplx_api, data = post_data).text
print(r)

Backup the Docker Image of zu1k

docker run -itd -p 1188:80 missuo/deeplx-bk

This docker image is not related to this project, as the original author deleted the image, it is only for backup.

Acknowledgements

Contributors

Activity

Alt

License

FOSSA Status