subconverter README

The project's README from github.com/tindy2013/subconverter. As one markdown file: README.md.

subconverter

Utility to convert between various proxy subscription formats.

Build Status GitHub tag (latest SemVer) GitHub release GitHub license

Docker README

中文文档

Supported Types

Type As Source As Target Target Name
Clash ✓ ✓ clash
ClashR ✓ ✓ clashr
Quantumult ✓ ✓ quan
Quantumult X ✓ ✓ quanx
Loon ✓ ✓ loon
SS (SIP002) ✓ ✓ ss
SS Android ✓ ✓ sssub
SSD ✓ ✓ ssd
SSR ✓ ✓ ssr
Surfboard ✓ ✓ surfboard
Surge 2 ✓ ✓ surge&ver=2
Surge 3 ✓ ✓ surge&ver=3
Surge 4 ✓ ✓ surge&ver=4
V2Ray ✓ ✓ v2ray
Telegram-liked HTTP/Socks 5 links ✓ × Only as source

Notice:

  1. Shadowrocket users should use ss, ssr or v2ray as target.

  2. You can add &remark= to Telegram-liked HTTP/Socks 5 links to set a remark for this node. For example:


Quick Usage

Using default groups and rulesets configuration directly, without changing any settings

Access Interface

http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&config=%CONFIG%

Description

Argument Required Example Description
target Yes clash Target subscription type. Acquire from Target Name in Supported Types.
url Yes https%3A%2F%2Fwww.xxx.com Subscription to convert. Supports URLs and file paths. Process with URLEncode first.
config No https%3A%2F%2Fwww.xxx.com External configuration file path. Supports URLs and file paths. Process with URLEncode first. More examples can be found in this repository.

If you need to merge two or more subscription, you should join them with '|' before the URLEncode process.

Example:

You have 2 subscriptions and you want to merge them and generate a Clash subscription:
1. https://dler.cloud/subscribe/ABCDE?clash=vmess
2. https://rich.cloud/subscribe/ABCDE?clash=vmess

First use '|' to separate 2 subscriptions:
https://dler.cloud/subscribe/ABCDE?clash=vmess|https://rich.cloud/subscribe/ABCDE?clash=vmess

Then process it with URLEncode to get %URL%:
https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess

Then fill %TARGET% and %URL% in Access Interface with actual values:
http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess

Finally subscribe this link in Clash and you are done!

Advanced Usage

Please refer to 中文文档.

Auto Upload

Upload Gist automatically

Add a Personal Access Token into gistconf.ini in the root directory, then add &upload=true to the local subscription link, then when you access this link, the program will automatically update the content to Gist repository.

Example:

[common]
;uncomment the following line and enter your token to enable upload function
token = xxxxxxxxxxxxxxxxxxxxxxxx(Your Personal Access Token)

subconverter (tindy2013/subconverter)

Searching Database…

What is this?A utility that converts proxy subscription files between formats: feed it a subscription link for one proxy client and get a ready config for another, like Clash, Surge or V2Ray.
Which subscription formats can it convert between?Clash, ClashR, Quantumult, Quantumult X, Loon, SS (SIP002), SS Android, SSD, SSR, Surfboard, Surge 2/3/4 and V2Ray, each both as source and target; Telegram-style HTTP/Socks5 links work only as a source.
How do I convert a subscription once it's running?Call the access interface with a target parameter (the format name, e.g. clash) and a url parameter holding your URLEncoded subscription link; an optional config parameter adds an external configuration file.
How do I get it running on my machine?It is a C++ program: build it from source with the included Makefile, or run the Docker image its CI publishes, then keep the local service up and query it over HTTP.
Any format quirks I should watch out for?Shadowrocket users should pick ss, ssr or v2ray as the target, Telegram-style links cannot be a target, and subscription URLs must be URLEncoded before being passed.
Can I merge multiple subscriptions into one config?Yes — join the subscription links with '|' before URLEncoding them, and the converter outputs a single combined config.
Can it keep a converted subscription in sync on GitHub Gist?Yes. Put a Personal Access Token into gistconf.ini in the root directory and add &upload=true to your local subscription link; each access then updates the Gist automatically.
Can I customize the rules and groups of the generated config?Yes — pass an external configuration file via the config parameter (a URL or file path, URLEncoded); the repository has more examples, and advanced usage is covered in the Chinese docs (中文文档).
Creator
tindy2013
Size
7.2 MB
Stars
17.1K
Age
6y
Commits · 90 Days