[{"data":1,"prerenderedAt":996},["ShallowReactive",2],{"navigation_docs_zh_cn":3,"-zh-cn-application-sshwifty-plus":81,"-zh-cn-application-sshwifty-plus-surround":991},[4,31,44,65],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"入门","i-lucide-rocket","\u002Fzh-cn\u002Fgetting-started","zh-cn\u002F1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"介绍","\u002Fzh-cn\u002Fgetting-started\u002Fintroduction","zh-cn\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"API和接口","\u002Fzh-cn\u002Fgetting-started\u002Fapi","zh-cn\u002F1.getting-started\u002F3.api","i-lucide-braces",{"title":21,"path":22,"stem":23,"icon":24},"应用","\u002Fzh-cn\u002Fgetting-started\u002Fapplication","zh-cn\u002F1.getting-started\u002F4.application","i-lucide-boxes",{"title":26,"path":27,"stem":28,"icon":29},"社区","\u002Fzh-cn\u002Fgetting-started\u002Fcommunity","zh-cn\u002F1.getting-started\u002F5.community","i-lucide-messages-square",false,{"title":16,"icon":19,"path":32,"stem":33,"children":34,"page":30},"\u002Fzh-cn\u002Fapi","zh-cn\u002F2.api",[35,40],{"title":36,"path":37,"stem":38,"icon":39},"图片URL转Base64","\u002Fzh-cn\u002Fapi\u002Fimage-to-base64","zh-cn\u002F2.api\u002F201.image-to-base64","i-lucide-brain",{"title":41,"path":42,"stem":43,"icon":39},"获取随机6657烂梗","\u002Fzh-cn\u002Fapi\u002Frandom-6657-meme","zh-cn\u002F2.api\u002F202.random-6657-meme",{"title":21,"icon":24,"path":45,"stem":46,"children":47,"page":30},"\u002Fzh-cn\u002Fapplication","zh-cn\u002F3.application",[48,53,57,61],{"title":49,"path":50,"stem":51,"icon":52},"MokuMoku","\u002Fzh-cn\u002Fapplication\u002Fmokumoku","zh-cn\u002F3.application\u002F201.mokumoku","i-lucide-app-window",{"title":54,"path":55,"stem":56,"icon":52},"TG贴纸转码工具","\u002Fzh-cn\u002Fapplication\u002Ftg-sticker","zh-cn\u002F3.application\u002F202.tg-sticker",{"title":58,"path":59,"stem":60,"icon":52},"Sshwifty Plus","\u002Fzh-cn\u002Fapplication\u002Fsshwifty-plus","zh-cn\u002F3.application\u002F203.sshwifty-plus",{"title":62,"path":63,"stem":64,"icon":52},"云剪贴板","\u002Fzh-cn\u002Fapplication\u002Fcloud-clipboard","zh-cn\u002F3.application\u002F204.cloud-clipboard",{"title":66,"icon":67,"path":68,"stem":69,"children":70,"page":30},"更多","i-lucide-ellipsis","\u002Fzh-cn\u002Fadvanced","zh-cn\u002F4.advanced",[71,76],{"title":72,"path":73,"stem":74,"icon":75},"隐私政策","\u002Fzh-cn\u002Fadvanced\u002Fprivacy-policy","zh-cn\u002F4.advanced\u002F1.privacy-policy","i-lucide-shield-check",{"title":77,"path":78,"stem":79,"icon":80},"更新日志","\u002Fzh-cn\u002Fadvanced\u002Fchangelog","zh-cn\u002F4.advanced\u002F2.changelog","i-lucide-logs",{"id":82,"title":58,"body":83,"description":983,"extension":984,"links":985,"meta":986,"navigation":987,"path":59,"seo":988,"stem":60,"__hash__":990},"docs_zh_cn\u002Fzh-cn\u002F3.application\u002F203.sshwifty-plus.md",{"type":84,"value":85,"toc":966},"minimark",[86,96,99,113,117,126,131,156,160,171,198,201,204,215,218,221,229,890,894,916,919,951,954,962],[87,88,89,90],"p",{},"开源仓库：",[91,92,93],"a",{"href":93,"rel":94},"https:\u002F\u002Fgithub.com\u002Fkrab-lab\u002Fsshwifty-plus",[95],"nofollow",[97,98],"hr",{},[100,101,102,103,107,108,112],"warning",{},"不建议使用其他人部署的服务，除非你能完全信任对方。他人只要保存了 ",[104,105,106],"code",{},"SSHWIFTY_KEY_ENCRYPTION_SECRET"," 就能够随时解密数据库，获得",[109,110,111],"strong",{},"你的服务器地址和SSH私钥","。建议自行部署该服务，并配合适当的Zero Trust访问控制。",[114,115,116],"h2",{"id":116},"功能变更",[87,118,119,120,125],{},"在原项目 ",[91,121,124],{"href":122,"rel":123},"https:\u002F\u002Fgithub.com\u002Fnirui\u002Fsshwifty",[95],"Sshwifty"," 的基础上做了如下改动。",[127,128,130],"h3",{"id":129},"workers与静态资源","Workers与静态资源",[132,133,134,142,149],"ul",{},[135,136,137,138,141],"li",{},"Cloudflare Worker同时托管静态UI，并处理 ",[104,139,140],{},"\u002Fsshwifty\u002Fsocket"," WebSocket SSH流量。",[135,143,144,145,148],{},"当前只支持SSH；Telnet、服务端Hooks、Socks5、服务端 ",[104,146,147],{},"file:\u002F\u002F"," 私钥读取不支持。",[135,150,151,152,155],{},"SSH客户端使用 ",[104,153,154],{},"ssh2","，并限制为Cloudflare Workers可兼容的算法组合。",[127,157,159],{"id":158},"github登录与账号密钥","GitHub登录与账号密钥",[87,161,162,163,166,167,170],{},"当 ",[104,164,165],{},"SSHWIFTY_AUTH_MODE"," 设置为 ",[104,168,169],{},"github"," 时，GitHub OAuth是必需登录方式。",[132,172,173,176,179,185,192],{},[135,174,175],{},"每个GitHub账号首次登录时，系统会创建一组Ed25519和RSA 4096位SSH密钥对。",[135,177,178],{},"用户能在账号窗口查看和复制公钥。",[135,180,181,182,184],{},"私钥使用 ",[104,183,106],{}," 加密后保存到Cloudflare D1。",[135,186,187,188,191],{},"SSH认证方式可以使用 ",[104,189,190],{},"Saved Key","，选择该选项时会使用托管的密钥连接远程服务器。",[135,193,194,195,197],{},"使用 ",[104,196,190],{}," 时，Worker先尝试Ed25519私钥，再尝试RSA私钥。",[127,199,200],{"id":200},"远程服务器记录",[87,202,203],{},"Connected before列表改为按GitHub账号保存到D1。",[132,205,206,209,212],{},[135,207,208],{},"SSH连接成功后自动保存远程服务器记录。",[135,210,211],{},"用户可以编辑或删除记录。",[135,213,214],{},"密码、上传的私钥和其他连接凭据不会保存到远程记录中。",[114,216,217],{"id":217},"部署",[87,219,220],{},"你需要准备：",[132,222,223,226],{},[135,224,225],{},"Cloudflare账号，并已启用Workers与D1。",[135,227,228],{},"Fork该仓库到自己的Github账号。",[230,231,232,236,269,272,279,415,424,430,434,453,513,518,525,540,544,551,569,577,584,590,594,602,606,617,621,627,745,751,755,761,770,851,854,874,880,887],"steps",{},[127,233,235],{"id":234},"在cloudflare-dashboard创建d1数据库","在Cloudflare Dashboard创建D1数据库",[237,238,239,242,253,263],"ol",{},[135,240,241],{},"登录Cloudflare Dashboard。",[135,243,244,245,248,249,252],{},"打开 ",[109,246,247],{},"存储与数据库","，进入 ",[109,250,251],{},"D1 SQLite数据库","。",[135,254,255,256,259,260,252],{},"点击 ",[109,257,258],{},"创建数据库","，名称填写 ",[104,261,262],{},"sshwifty",[135,264,265,266,252],{},"创建完成后复制数据库ID，这是一串UUID，类似 ",[104,267,268],{},"84fa53bb-3b6b-4d23-9f28-bfdcc23aa243",[127,270,271],{"id":271},"检查仓库配置",[87,273,274,275,278],{},"部署配置由根目录的 ",[104,276,277],{},"wrangler.jsonc"," 提供。连接仓库前确认其中的D1 binding使用：",[280,281,286],"pre",{"className":282,"code":283,"language":284,"meta":285,"style":285},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"d1_databases\": [\n  {\n    \"binding\": \"DB\",\n    \"database_name\": \"sshwifty\",\n    \"database_id\": \"YOUR_D1_DATABASE_ID\",\n    \"migrations_dir\": \"worker\u002Fmigrations\"\n  }\n]\n","json","",[104,287,288,310,316,342,362,383,403,409],{"__ignoreMap":285},[289,290,293,297,301,303,307],"span",{"class":291,"line":292},"line",1,[289,294,296],{"class":295},"sMK4o","\"",[289,298,300],{"class":299},"sfazB","d1_databases",[289,302,296],{"class":295},[289,304,306],{"class":305},"sTEyZ",": ",[289,308,309],{"class":295},"[\n",[289,311,313],{"class":291,"line":312},2,[289,314,315],{"class":295},"  {\n",[289,317,319,322,326,328,331,334,337,339],{"class":291,"line":318},3,[289,320,321],{"class":295},"    \"",[289,323,325],{"class":324},"spNyl","binding",[289,327,296],{"class":295},[289,329,330],{"class":295},":",[289,332,333],{"class":295}," \"",[289,335,336],{"class":299},"DB",[289,338,296],{"class":295},[289,340,341],{"class":295},",\n",[289,343,345,347,350,352,354,356,358,360],{"class":291,"line":344},4,[289,346,321],{"class":295},[289,348,349],{"class":324},"database_name",[289,351,296],{"class":295},[289,353,330],{"class":295},[289,355,333],{"class":295},[289,357,262],{"class":299},[289,359,296],{"class":295},[289,361,341],{"class":295},[289,363,365,367,370,372,374,376,379,381],{"class":291,"line":364},5,[289,366,321],{"class":295},[289,368,369],{"class":324},"database_id",[289,371,296],{"class":295},[289,373,330],{"class":295},[289,375,333],{"class":295},[289,377,378],{"class":299},"YOUR_D1_DATABASE_ID",[289,380,296],{"class":295},[289,382,341],{"class":295},[289,384,386,388,391,393,395,397,400],{"class":291,"line":385},6,[289,387,321],{"class":295},[289,389,390],{"class":324},"migrations_dir",[289,392,296],{"class":295},[289,394,330],{"class":295},[289,396,333],{"class":295},[289,398,399],{"class":299},"worker\u002Fmigrations",[289,401,402],{"class":295},"\"\n",[289,404,406],{"class":291,"line":405},7,[289,407,408],{"class":295},"  }\n",[289,410,412],{"class":291,"line":411},8,[289,413,414],{"class":295},"]\n",[87,416,417,418,420,421,423],{},"将上一步的数据库ID写入 ",[104,419,369],{},"，提交到部署分支。可使用GitHub网页编辑器修改 ",[104,422,277],{}," 并提交。",[425,426,427,429],"note",{},[104,428,277],{}," 是Git部署的配置来源。不要在Dashboard和仓库配置中为同一个binding填写相互冲突的数据库。",[127,431,433],{"id":432},"在cloudflare中连接github仓库","在Cloudflare中连接GitHub仓库",[237,435,436,441,447,450],{},[135,437,244,438,252],{},[109,439,440],{},"Workers & Pages",[135,442,443,444,252],{},"点击创建应用，选择 ",[104,445,446],{},"Continue with Github",[135,448,449],{},"授权Cloudflare访问GitHub，选择包含本项目的仓库。",[135,451,452],{},"进入构建配置，填写以下内容：",[454,455,456,469],"table",{},[457,458,459],"thead",{},[460,461,462,466],"tr",{},[463,464,465],"th",{},"配置项",[463,467,468],{},"值",[470,471,472,483,493,503],"tbody",{},[460,473,474,478],{},[475,476,477],"td",{},"项目名称",[475,479,480],{},[104,481,482],{},"sshwifty-plus",[460,484,485,488],{},[475,486,487],{},"根目录",[475,489,490],{},[104,491,492],{},"\u002F",[460,494,495,498],{},[475,496,497],{},"构建命令",[475,499,500],{},[104,501,502],{},"npm run generate",[460,504,505,508],{},[475,506,507],{},"部署命令",[475,509,510],{},[104,511,512],{},"npx wrangler deploy",[237,514,515],{"start":364},[135,516,517],{},"保存并启动首次部署。",[87,519,520,521,524],{},"部署后，在Worker的 ",[109,522,523],{},"绑定"," 中确认存在：",[132,526,527,530,535],{},[135,528,529],{},"类型：D1数据库",[135,531,532,533],{},"名称：",[104,534,336],{},[135,536,537,538],{},"值：",[104,539,262],{},[127,541,543],{"id":542},"在github创建oauth-app","在GitHub创建OAuth App",[87,545,546,547,550],{},"在对应Worker的",[104,548,549],{},"域","中复制生产URL，或添加一个自定义域。",[237,552,553,561,566],{},[135,554,555,556,252],{},"打开GitHub的 ",[91,557,560],{"href":558,"rel":559},"https:\u002F\u002Fgithub.com\u002Fsettings\u002Fdevelopers",[95],"Settings → Developer settings → OAuth Apps",[135,562,255,563,252],{},[104,564,565],{},"New OAuth App",[135,567,568],{},"将Authorization callback URL设置为：",[280,570,575],{"className":571,"code":573,"language":574,"meta":285},[572],"language-text","https:\u002F\u002FYOUR_WORKER_DOMAIN\u002Fsshwifty\u002Fauth\u002Fgithub\u002Fcallback\n","text",[104,576,573],{"__ignoreMap":285},[87,578,579,580,583],{},"例如Worker域名为 ",[104,581,582],{},"https:\u002F\u002Fsshwifty.example.com","，callback URL必须是：",[280,585,588],{"className":586,"code":587,"language":574,"meta":285},[572],"https:\u002F\u002Fsshwifty.example.com\u002Fsshwifty\u002Fauth\u002Fgithub\u002Fcallback\n",[104,589,587],{"__ignoreMap":285},[591,592,593],"tip",{},"推荐使用自定义域。",[237,595,596],{"start":344},[135,597,255,598,601],{},[104,599,600],{},"Generate a new client secret","，记录GitHub OAuth App的Client ID与Client Secret，下一步要填写到Cloudflare Dashboard。",[127,603,605],{"id":604},"在dashboard填写variables和secrets","在Dashboard填写Variables和Secrets",[87,607,608,609,612,613,616],{},"首次部署后，打开对应Worker的 ",[109,610,611],{},"设置"," → ",[109,614,615],{},"变量与密钥","，填写以下值。",[618,619,620],"h4",{"id":620},"普通变量",[591,622,623,624,626],{},"这些变量已经在 ",[104,625,277],{}," 内声明，不需要手动添加，你可以根据需要修改。",[454,628,629,641],{},[457,630,631],{},[460,632,633,636,638],{},[463,634,635],{},"名称",[463,637,468],{},[463,639,640],{},"说明",[470,642,643,656,671,686,702,717,732],{},[460,644,645,649,653],{},[475,646,647],{},[104,648,165],{},[475,650,651],{},[104,652,169],{},[475,654,655],{},"要求GitHub登录",[460,657,658,663,668],{},[475,659,660],{},[104,661,662],{},"SSHWIFTY_DIAL_TIMEOUT",[475,664,665],{},[104,666,667],{},"120",[475,669,670],{},"SSH连接超时，单位秒",[460,672,673,678,683],{},[475,674,675],{},[104,676,677],{},"SSHWIFTY_HEARTBEAT_TIMEOUT",[475,679,680],{},[104,681,682],{},"10",[475,684,685],{},"心跳间隔，单位秒",[460,687,688,693,699],{},[475,689,690],{},[104,691,692],{},"SSHWIFTY_ALLOWED_HOSTS",[475,694,695,696],{},"例如 ",[104,697,698],{},"ssh.example.com:22,10.0.0.10:2222",[475,700,701],{},"填写后只能连接指定的主机和端口，暂不支持通配符和网段",[460,703,704,709,714],{},[475,705,706],{},[104,707,708],{},"SSHWIFTY_PUBLIC_ACCESS",[475,710,711],{},[104,712,713],{},"true",[475,715,716],{},"允许无需密码即可进入Sshwifty入口",[460,718,719,724,729],{},[475,720,721],{},[104,722,723],{},"SSHWIFTY_PRESETS",[475,725,726],{},[104,727,728],{},"[]",[475,730,731],{},"SSH preset JSON",[460,733,734,739,742],{},[475,735,736],{},[104,737,738],{},"SSHWIFTY_SERVER_MESSAGE",[475,740,741],{},"任意提示文本",[475,743,744],{},"可选",[87,746,747,748,750],{},"为避免Dashboard值与仓库配置不一致，建议将长期固定的非敏感值提交到 ",[104,749,277],{},"；将环境专属值通过Dashboard管理。",[618,752,754],{"id":753},"secrets","Secrets",[100,756,757,758,760],{},"不要在任何地方暴露这些值，更不要将这些值写入 ",[104,759,277],{}," ！",[87,762,194,763,612,766,769],{},[109,764,765],{},"添加",[109,767,768],{},"密钥"," 添加以下值：",[454,771,772,784],{},[457,773,774],{},[460,775,776,778,781],{},[463,777,635],{},[463,779,780],{},"值来源",[463,782,783],{},"用途",[470,785,786,799,811,827,840],{},[460,787,788,793,796],{},[475,789,790],{},[104,791,792],{},"GITHUB_CLIENT_ID",[475,794,795],{},"GitHub OAuth App的Client ID",[475,797,798],{},"GitHub登录必需",[460,800,801,806,809],{},[475,802,803],{},[104,804,805],{},"GITHUB_CLIENT_SECRET",[475,807,808],{},"GitHub OAuth App的Client Secret",[475,810,798],{},[460,812,813,818,821],{},[475,814,815],{},[104,816,817],{},"SSHWIFTY_SHARED_KEY",[475,819,820],{},"自行设置一个密码",[475,822,823,824,826],{},"可选，当 ",[104,825,708],{}," 禁用时，要求输入密码才能使用Sshwifty",[460,828,829,834,837],{},[475,830,831],{},[104,832,833],{},"SSHWIFTY_SESSION_SECRET",[475,835,836],{},"自行生成的高强度随机值",[475,838,839],{},"签名session与OAuth state cookie",[460,841,842,846,848],{},[475,843,844],{},[104,845,106],{},[475,847,836],{},[475,849,850],{},"加密D1中的SSH私钥",[87,852,853],{},"对于后两个值，建议生成至少32字节的随机字符串后粘贴到Dashboard，并且它们必须不同。",[87,855,856,857,862,863,866,867,866,870,873],{},"推荐使用 ",[91,858,861],{"href":859,"rel":860},"https:\u002F\u002Fpswd.software",[95],"PSWD by MAZE"," ，勾选 ",[104,864,865],{},"Include Uppercase Letters",", ",[104,868,869],{},"Include Lowercase Letters",[104,871,872],{},"Include Numbers"," 。",[100,875,876,877,879],{},"轮换 ",[104,878,833],{}," 会使所有用户重新登录。",[881,882,883,884,886],"caution",{},"不要丢失或随意轮换 ",[104,885,106],{},"。丢失后，D1中已有的托管SSH私钥无法解密。",[87,888,889],{},"保存变量或secrets后，在Dashboard里重试部署或向GitHub推送一次空提交以创建新的Worker版本。",[114,891,893],{"id":892},"首次部署后的d1-处理","首次部署后的D1 处理",[237,895,896,905,910,913],{},[135,897,898,899,901,902,904],{},"确认最新部署已完成，并且 ",[104,900,336],{}," 绑定指向正确的 ",[104,903,262],{}," D1数据库。",[135,906,244,907,252],{},[104,908,909],{},"https:\u002F\u002FYOUR_WORKER_DOMAIN\u002Fsshwifty\u002F",[135,911,912],{},"点击Sign in with GitHub并完成授权。",[135,914,915],{},"OAuth callback会自动执行当前v1 schema的建表自检。",[114,917,918],{"id":918},"部署验证",[237,920,921,925,931,934,940,945,948],{},[135,922,244,923,252],{},[104,924,909],{},[135,926,255,927,930],{},[104,928,929],{},"Sign in with GitHub"," 并完成OAuth授权。",[135,932,933],{},"打开右上角账号菜单，复制Ed25519或RSA公钥。",[135,935,936,937,252],{},"将公钥写入目标服务器用户的 ",[104,938,939],{},"~\u002F.ssh\u002Fauthorized_keys",[135,941,942,943,252],{},"新建SSH连接，在Authentication中选择 ",[104,944,190],{},[135,946,947],{},"确认服务器指纹后，验证shell能打开。",[135,949,950],{},"再次打开连接窗口，确认远程服务器已出现在Connected before；编辑和删除操作应在刷新后保留。",[114,952,953],{"id":953},"遇到问题",[87,955,956,957,252],{},"请提交",[91,958,961],{"href":959,"rel":960},"https:\u002F\u002Fgithub.com\u002Fkrab-lab\u002Fsshwifty-plus\u002Fissues",[95],"Issue",[963,964,965],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":285,"searchDepth":312,"depth":312,"links":967},[968,973,980,981,982],{"id":116,"depth":312,"text":116,"children":969},[970,971,972],{"id":129,"depth":318,"text":130},{"id":158,"depth":318,"text":159},{"id":200,"depth":318,"text":200},{"id":217,"depth":312,"text":217,"children":974},[975,976,977,978,979],{"id":234,"depth":318,"text":235},{"id":271,"depth":318,"text":271},{"id":432,"depth":318,"text":433},{"id":542,"depth":318,"text":543},{"id":604,"depth":318,"text":605},{"id":892,"depth":312,"text":893},{"id":918,"depth":312,"text":918},{"id":953,"depth":312,"text":953},"通过网页建立SSH连接，并自动管理你的SSH密钥，可以自托管于Cloudflare Worker，无需服务器。","md",null,{},{"icon":52},{"description":989,"title":58},"一个WebSSH应用，可以使用Cloudflare Worker自行部署。","RFcul1wNun-1Q2iceouBQ2d7PPa-fzV7VVfKSJ9j7EI",[992,994],{"title":54,"path":55,"stem":56,"description":993,"icon":52,"children":-1},"简单的web应用，能够自动批量将视频或GIF动图转换成TG要求的格式。",{"title":62,"path":63,"stem":64,"description":995,"icon":52,"children":-1},"加密的跨设备剪贴板，无需登录，无服务器设计。",1785732098674]