有道非官方翻译接口api

v1.0.0发布于:2024-04-21 01:06

说明文档
回复列表 (0)

介绍

这是一个有道翻译的逆向api接口,能够将翻译功能轻松集成到你的系统中去,主要功能有单词词典释义、支持中英以及各种语言互相翻译,支持提炼一段文本中的重难点单词。

使用教程

作者B站 - 使用教程

标识

调用插件的时候需要用到标识,标识是唯一的,不能重复,建议使用英文,不要使用中文,对应插件 plugin.json 中的 key 字段

  • 标识:youdao

配置

{
 "cookie":"P_INFO=null; OUTFOX_SEARCH_USER_ID=-174204932@47.88.31.216; OUTFOX_SEARCH_USER_ID_NCOO=280007552.16067606; __yadk_uid=Ju777JThupO6ub4diJcWqIsWo3SUO38f; rollNum=true; ___rl__test__cookies=1713608672466; DICT_DOCTRANS_SESSION_ID=NjQ4OTk2NmQtNTU0NC00MDIyLWI4MWYtYWY2M2JkYzJlMmRj",
 "aesIv":"ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4",
 "aesKey":"ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl",
 "secretKey":"fsdsogkndfokasodnaso"
}

可以直接使用上面提供的cookie以及相关加密参数直接调用,也可以访问有道官网 https://fanyi.youdao.com 从浏览器开发者工具中找到相关cookie以及加密参数调用。

方法

下面是插件提供的一些方法

  • dict
  /**
   * 词典解析
   * @param word 
   */
  async dict(word:string) 

  • 返回示例
{
    "code": 1000,
    "message": "success",
    "data": {
      //  .... 数据量比较多,自己测试查看数据结构
    }
}

  • translate
 /**
   * 翻译
   * @param text 
   * @param from 文本语言
   * @param to 目标语言,可查看有道官方支持的
   */
  async translate(text:string,from:string  = 'auto',to:string = 'zh-CHS')
  • 返回示例
{
    "code": 1000,
    "message": "success",
    "data": {
        "code": 0,
        "dictResult": {
            "ec": {
                "word": {
                    "trs": [
                        {
                            "tran": "你好,世界:一个用于展示编程语言基本语法和结构的示例程序。"
                        }
                    ],
                    "speech": "hello+world",
                    "return-phrase": "hello world"
                }
            }
        },
        "translateResult": [
            [
                {
                    "tgt": "你好世界",
                    "src": "hello world",
                    "tgtPronounce": "nĭ hăo shì jiè"
                }
            ]
        ],
        "type": "en2zh-CHS"
    }
}

  • keyword
  /**
   * 提取重点单词
   * @param text 
   * @returns 
   */
  async keyword(text:string)
  • 返回示例
{
    "code": 1000,
    "message": "success",
    "data": {
        "code": 0,
        "message": "SUCCESS",
        "data": [
            {
                "origin": "assistant",
                "explain": "助手,助理,助教; 辅助的,助理的;有帮助的;",
                "from": "en",
                "to": "zh",
                "index": 3
            },
            {
                "origin": "good",
                "explain": "好的;优良的;愉快的;虔诚的; 好处;善行;慷慨的行为; 好; (Good)人名;(英)古德;(瑞典)戈德;",
                "from": "en",
                "to": "zh",
                "index": 21
            }
        ]
    }
}

调用示例

    @Inject()  
    pluginService:PluginService


    @CoolTag(TagTypes.IGNORE_TOKEN)
    @Get('/fanyi', { summary: '测试翻译' })
    public async fanyi(@Query('text') text: string) { 
      const res = await this.pluginService.invoke("youdao","translate",text)
      return this.ok(res)
    }

    @CoolTag(TagTypes.IGNORE_TOKEN)
    @Get('/dict', { summary: '测试词典' })
    public async dict(@Query('text') text: string) { 
      const res = await this.pluginService.invoke("youdao","dict",text)
      return this.ok(res)
    }



    @CoolTag(TagTypes.IGNORE_TOKEN)
    @Get('/keyword', { summary: '测试重点单词' })
    public async keyword(@Query('text') text: string) { 
      const res = await this.pluginService.invoke("youdao","keyword",text)
      return this.ok(res)
    }

更新日志

  • v1.0.0 (2024-04-21)
    • 初始版本