244 lines
9.1 KiB
Markdown
244 lines
9.1 KiB
Markdown
---
|
||
title: URL scheme in HiddifyApp
|
||
---
|
||
|
||
# URL Scheme in HiddifyApp
|
||
We extend the protocol defined [here](https://web.archive.org/web/20230323111527/docs.cfw.lbyczf.com/contents/urlscheme.html#%E4%B8%8B%E8%BD%BD%E9%85%8D%E7%BD%AE).
|
||
|
||
## Download configuration
|
||
|
||
Supports quick import of configuration files using URL Scheme:
|
||
|
||
```
|
||
hiddify://import/<sublink>#name
|
||
|
||
vmess://....
|
||
vless://...
|
||
ss://...
|
||
trojan://...
|
||
```
|
||
|
||
`<sublink>` is either clash link, singbox link, v2ray sublink, or single proxy link
|
||
|
||
|
||
|
||
<details><summary>deprecated</summary>
|
||
|
||
```
|
||
hiddify://install-sub?url=<encoded v2ray config URI>#<name>
|
||
hiddify://install-config?url=<encoded v2ray config URI>#<name>
|
||
hiddify://install-proxy?url=<encoded v2ray proxy share link>#<name>
|
||
```
|
||
</details>
|
||
|
||
|
||
### Examples:
|
||
#### Example Deeplink
|
||
```
|
||
hiddify://import/https://hiddify.com/autosub#name
|
||
hiddify://import/trojan://your_password@aws-ar-buenosaires-1.f1cflineb.com:443#name
|
||
```
|
||
|
||
##### Example Sub link content
|
||
###### v2ray format
|
||
```
|
||
# http_WS_direct_vless تست
|
||
vless://64177752-4266-4e00-94e3-1b8ececc6623@ip.sslip.io:80?security=none&sni=ip.sslip.io&type=ws&alpn=http/1.1&path=/2LBLzR6NsjNkCN830caotU&host=ip.sslip.io&encryption=none&fp=chrome&headerType=None#http_WS_direct_vless_تست
|
||
|
||
# http_WS_direct_vmess تست
|
||
vmess://64177752-4266-4e00-94e3-1b8ececc6623@ip.sslip.io:80?security=none&sni=ip.sslip.io&type=ws&alpn=http/1.1&path=/2LBLzR6NsjNkCN830caotU&host=ip.sslip.io&encryption=none&fp=chrome&headerType=None#http_WS_direct_vless_تست
|
||
|
||
|
||
# ssconfig
|
||
ssconf://s3.amazonaws.com/beedynconprd/ng4lf90ip01zstlyle4r0t56x1qli4cvmt2ws6nh0kdz1jpgzyedogxt3mpxfbxi.json#BeePass",
|
||
|
||
# Reality
|
||
vless://409f106a-b2f2-4416-b186-5429c9979cd9@54.38.144.4:2053?encryption=none&flow=&fp=chrome&pbk=SbVKOEMjK0sIlbwg4akyBg5mL5KZwwB-ed4eEE7YnRc&security=reality&serviceName=xyz&sid=&sni=discordapp.com&type=grpc#رایگان | REALITY | @EliV2ray | FR🇫🇷 | 0️⃣1️⃣
|
||
|
||
# Vless
|
||
vless://25da296e-1d96-48ae-9867-4342796cd742@172.67.149.95:443?encryption=none&fp=chrome&host=vless.229feb8b52a0e7e117ea76f8b591bcb3.workers.dev&path=%2F%3Fed%3D2048&security=tls&sni=vless.229feb8b52a0e7e117ea76f8b591bcb3.workers.dev&type=ws#رایگان | VLESS | @Helix_Servers | US🇺🇸 | 0️⃣1️⃣
|
||
|
||
# Vmess
|
||
vmess://eyJhZGQiOiI1MS4xNjEuMTMwLjE3MyIsImFpZCI6IjAiLCJhbHBuIjoiIiwiZnAiOiIiLCJob3N0IjoiIiwiaWQiOiJkNDNlZTVlMy0xYjA3LTU2ZDctYjJlYS04ZDIyYzQ0ZmRjNjYiLCJuZXQiOiJ0Y3AiLCJwYXRoIjoiIiwicG9ydCI6IjgwODAiLCJzY3kiOiJjaGFjaGEyMC1wb2x5MTMwNSIsInNuaSI6IiIsInRscyI6IiIsInR5cGUiOiJub25lIiwidiI6IjIiLCJwcyI6Ilx1MDYzMVx1MDYyN1x1MDZjY1x1MDZhZlx1MDYyN1x1MDY0NiB8IFZNRVNTIHwgQFdhdGFzaGlfVlBOIHwgQVVcdWQ4M2NcdWRkZTZcdWQ4M2NcdWRkZmEgfCAwXHVmZTBmXHUyMGUzMVx1ZmUwZlx1MjBlMyJ9"
|
||
|
||
# ss
|
||
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTp0T3dPeXZsWGlZNUFUSkFVT3BYTlBO@5.35.34.107:55990#%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86+%7C+SS+%7C+%40iP_CF+%7C+RU%F0%9F%87%B7%F0%9F%87%BA+%7C+0%EF%B8%8F%E2%83%A31%EF%B8%8F%E2%83%A3"
|
||
|
||
# TUIC
|
||
tuic://3618921b-adeb-4bd3-a2a0-f98b72a674b1:dongtaiwang@108.181.24.7:23450?allow_insecure=1&alpn=h3&congestion_control=bbr&sni=www.google.com&udp_relay_mode=native#رایگان | TUIC | @V2rayCollector | CA🇨🇦 | 0️⃣1️⃣
|
||
|
||
# Hysteria1
|
||
hysteria://host:443?protocol=udp&auth=123456&peer=sni.domain&insecure=1&upmbps=100&downmbps=100&alpn=hysteria&obfs=xplus&obfsParam=123456#remarks",
|
||
|
||
# Hysteria2
|
||
hysteria2://letmein@example.com/?insecure=1&obfs=salamander&obfs-password=gawrgura&pinSHA256=deadbeef&sni=real.example.com
|
||
|
||
# SSH
|
||
ssh://user:pass@server:22/?pk=pk&hk=hk"
|
||
|
||
# Trojan
|
||
trojan://your_password@aws-ar-buenosaires-1.f1cflineb.com:443?host=aws-ar-buenosaires-1.f1cflineb.com&path=%2Ff1rocket&security=tls&sni=aws-ar-buenosaires-1.f1cflineb.com&type=ws#رایگان | TROJAN | @VmessProtocol | RELAY🚩 | 0️⃣1️⃣"
|
||
|
||
#Wireguard
|
||
wg://[server]:222/?pk=[private_key]&local_address=10.0.0.2/24&peer_pk=[peer_public_key]&pre_shared_key=[pre_shared_key]&workers=[workers]&mtu=[mtu]&reserved=0,0,0
|
||
|
||
```
|
||
###### v2ray link format
|
||
```
|
||
#normal exmaple
|
||
hiddify://import/https://raw.githubusercontent.com/yebekhe/TelegramV2rayCollector/fe3637db4ece53e56ac99ea09dbefa34466f280f/sub/normal/mix
|
||
|
||
#base64 example
|
||
hiddify://import/https://raw.githubusercontent.com/yebekhe/TelegramV2rayCollector/fe3637db4ece53e56ac99ea09dbefa34466f280f/sub/base64/mix
|
||
```
|
||
###### Singbox format
|
||
```
|
||
hiddify://import/https://raw.githubusercontent.com/yebekhe/TelegramV2rayCollector/fe3637db4ece53e56ac99ea09dbefa34466f280f/singbox/sfasfi/mixLite.json
|
||
```
|
||
##### Clash format
|
||
```
|
||
hiddify://import/https://raw.githubusercontent.com/yebekhe/TelegramV2rayCollector/d6ce7b907eeb58abf503c283af192e7bc915d143/clash/mix.yml
|
||
```
|
||
|
||
# Profile Title:
|
||
We use the first item from the following list if it is not empty or null
|
||
|
||
- "Profile-Title" header
|
||
- "content-disposition" header (described bellow)
|
||
- URL Fragment (anything after # in the url)
|
||
- the last part of the URL as the configuration file name. Any `.txt` `.json` `.yaml` or `.yml` will be removed
|
||
|
||
### Response headers
|
||
#### Profile-Title
|
||
You can use base64 encoded UTF8 name for profile title that allows you to have emoji in profile title 😍
|
||
However you use also the ascii name in the header. Example:
|
||
|
||
```
|
||
Profile-Title: base64:SSDinaTvuI8gSGlkZGlmeQ==
|
||
```
|
||
It will show the profile title as `I ❤️ Hiddify`
|
||
|
||
```
|
||
Profile-Title: I love hiddify
|
||
```
|
||
It will show the profile title as `I love Hiddify`
|
||
|
||
#### content-disposition
|
||
|
||
If the `Profile-Title` is not set for backward compatibility with clash configs we use the value corresponding to `filename` as the configuration file name, otherwise use the last part of the URL as the configuration file name. Any `.txt`, `.yaml` or `.yml` will be removed
|
||
|
||
```
|
||
content-disposition: attachment; filename="abc.txt"
|
||
```
|
||
|
||
#### profile-update-interval
|
||
|
||
If there is a `profile-update-interval` field in the response header, the configuration file automatic update interval is set to the corresponding value, in hours
|
||
|
||
```
|
||
profile-update-interval: 12
|
||
```
|
||
|
||
#### subscription-userinfo
|
||
|
||
If the `subscription-userinfo` field exists in the response header, its corresponding traffic and expiration information will be displayed in the Profiles module, [specification reference here](https://github.com/crossutility/Quantumult/blob/master/extra-subscription-feature.md)
|
||
|
||
```
|
||
subscription-userinfo: upload=455727941; download=6174315083; totl=1073741824000; expire=1671815872
|
||
```
|
||
|
||
#### profile-web-page-url
|
||
|
||
If the `profile-web-page-url` field exists in the response header, the `Open web page` option will be displayed in the profile, allowing the user to jump to the corresponding portal home page
|
||
|
||
#### support-url
|
||
|
||
If the `support-url` field exists in the response header, the `support` option will be displayed in the profile, allowing the user to jump to the corresponding portal home page
|
||
|
||
#### moved-permanently-to
|
||
|
||
If the `moved-permanently-to` field exists in the response header, this will update the subscription url. It is useful when your sublink is blocked or you want to change the domain.
|
||
|
||
|
||
#### DNS
|
||
|
||
If the `DNS` field exists in the response header, and the user did not set his/her own preferred DNS, the application will use this DNS server. (In the clash profile this setting can be override)
|
||
|
||
#### Example
|
||
|
||
<div align=center>
|
||
|
||

|
||
</div>
|
||
|
||
In this example:
|
||
```
|
||
پروفایل یک = <name>
|
||
usage=<download>+<upload> (if more than 80% of total :yellow, more than 100% :red)
|
||
total=<total>
|
||
روزباقیمانه=relative date of <expire> (if less than 7 days: yellow, less than zero: red)
|
||
مشاهده= open browser with <profile-web-page-url>
|
||
```
|
||
|
||
The usage information will be fetched by HEAD option whenever user open the application or every 1 minute (when user is focused in the application)
|
||
If any of those fields are empty the corresponding data will not be shown.
|
||
|
||
|
||
|
||
# if you can not modify HTTP header (e g. In GitHub)
|
||
You can add headers in the first 10 lines of the file with skip characters such as `//` for json or `#` for Yaml and sub links
|
||
|
||
E.g.,
|
||
|
||
```
|
||
#profile-title: Hiddify
|
||
#profile-title: base64:base64string
|
||
#profile-update-interval: 1
|
||
#subscription-userinfo: upload=455727941; download=6174315083; total=1073741824000; expire=1671815872
|
||
#support-url: https://t.me/hiddify
|
||
#profile-web-page-url: https://hiddify.com
|
||
|
||
```
|
||
|
||
# Fragment Parameters
|
||
If you want to use Fragment in your links, you have to consider the following parameters
|
||
|
||
```
|
||
&fragment=size,sleep,hellotls
|
||
```
|
||
|
||
For example, you just need to put the following information in your links
|
||
|
||
`&fragment=10-100,100-200,hellotls`
|
||
|
||
# MUX parameter
|
||
If you want to setup Mux parameters in your link
|
||
|
||
```
|
||
mux : "smux/h2mux/yamux"
|
||
mux_max : "number" e.g. 6
|
||
mux_min : "number" e.g. 2
|
||
mux_pad : "true/false"
|
||
mux_down : "number in mbps" e.g. 100
|
||
mux_up : "number in mbps" e.g. 200
|
||
|
||
```
|
||
|
||
Here:
|
||
|
||
- `mux` can be one of `smux`, `yamux`, `h2mux`
|
||
|
||
|
||
|
||
|
||
- `mux_max` is the maximum number of connections.
|
||
|
||
- `mux_min` is the minimum number of streams.
|
||
|
||
- `mux_pad` is a true or false parameter which turns on or off this feature on MUX. It Should be the same with the server.
|
||
|
||
- `mux_down` is the download bandwidth for MUX in mbps.
|
||
|
||
- `mux_up` is the upload bandwidth for MUX in mbps.
|
||
|
||
Example: `mux=smux&mux_max=4&mux_min=0&mix_pad=false&mux_up=10&mux_down=10` |