有道词典到底开放了多少接口?我把一个词能拿到的 29 个内容区块全盘了一遍

有道词典到底开放了多少接口?我把一个词能拿到的 29 个内容区块全盘了一遍

📖 本文共 5,882 字,阅读需要 20 分钟

起因很简单:我在写一个「生词复习工具」,需要给每个单词配音标、例句、图片。本来准备老老实实调翻译 API,结果发现——有道词典把整套词典能力都摆在了同一个接口上:免费、公开、不需要 key、不需要登录,一个请求下去回来 45 KB、29 个内容区块。

测完之后,我对这家公司是真的有点敬意——甚至想在文章最后专门写上一段,向它致敬。

很多词典产品会把“好东西”留在会员墙后面,而有道反着来:影视例句、歌词例句、词源、维基摘要、真人发音、甚至连免费翻译,都敞开着递到你手上。对学英语的人来说(尤其是预算有限的学生),这是实实在在的福利——我那个小小的复习工具,配图、权威例句、词源、影视片段、歌词试听,几乎全靠它撑起来,一分钱没花。

这篇是我把能摸到的接口全盘一遍的完整清单,以及几个工程上的结论。

先说一句合规的前提:下面的内容只适合个人学习研究,控制请求频率,不要批量抓取或转售词典内容——柯林斯、牛津那些内容是人家花版权费买来的,我们只是看看,别拿去做产品。

一、主角:jsonapi,一个请求吃下全部

https://dict.youdao.com/jsonapi?q=apple

一个 GET,45 KB,0.2 秒,返回 29 个顶层区块。下面是我实测出来的全部内容:

区块 里面是什么 覆盖情况
simple / ec / ee / individual 音标、中英释义、英英释义、考试分级(中考/四级…)、词形变化 wfs 几乎 100%
auth_sents_part 权威例句:真实出版物,带出处(FORBES / BBC / WSJ…) 8/8 ✅ 极好
blng_sents_part 双语例句(词典例句库) 高
media_sents_part 原声例句:VOA、名校公开课,带音频片段 streamUrl 高
video_sents 影视例句:mp4 视频 + 台词字幕 + 贡献者 仅常见词
music_sents 歌词例句:歌名、歌手、专辑封面、歌词译文、试听地址 仅常见词
pic_dict 图片词典:真实图片(一张词对应多张) 中上
phrs 常用短语搭配(常见词能到 20 条) 高
syno 同义词/近义词组(带词性、中文解释) 高
etym 词源:中文讲这个词怎么来的 6/8
wikipedia_digest 维基百科摘要 + 原文链接 7/8
collins / collins_primary 柯林斯词典 部分可用
web_trans 网络释义(社交语料里的意思) 高
special 专业领域释义 中
aiDefinition 有道自己生成的 AI 释义 中
word_video 单词视频 少
meta / input / lang / le 查询元信息 100%
oxford / oxfordAdvanceHtml / oxfordAdvanceTen / senior / webster 牛津、韦氏等付费词典(加密下发) 🔒 尊重版权,未取用

见解 1:不用挑词典,一个请求全都给你

有道网页版以前会这样发请求:jsonapi?q=apple&dict=ec&le=en&keyfrom=dict.index,看起来 dict 决定”要哪本词典”。

我遍历测了 35 个值(ec ce ec21 ee phrs auth blng media pic_dict syno etym idiom collins oxford oald concise xiehouyu discriminate qqdict……),结果每一个的响应大小都一模一样,都是 45.5 KB,都是那 29 个区块。

结论:dict 参数已经不做筛选了,服务端一律”全量返回”——它不用你挑,一次把整本词典给你。你直接请求裸的 ?q=<词> 就行。

见解 2:有版权的部分,它保护得很好

oxford oxfordAdvanceHtml oxfordAdvanceTen senior webster 这几块,返回的不是词典内容,而是:

{ "oxford": { "encryptedData": "TNvL5RvzrtPgEpLHE_NgTvMMps7y4fRHaUEzdolM_M..." } }

内容是加密后下发、由网页的 JS 解密的。牛津、韦氏这几本是老牌付费词典,有道在开放的同时,也把有版权的内容稳稳保护住了——免费的部分已经给得足够慷慨,这几块我自然也不会去碰。

二、周边端点:还有一批能直接用的

端点 用途 状态
dict.youdao.com/suggest?num=5&ver=3.0&doctype=json&q=appl 搜索建议 / 拼写补全(JSON) ✅
dict.youdao.com/suggest?q=appl&le=eng&num=5 同一功能的老 XML 版本 ✅
dict.youdao.com/fsearch?q=apple&le=eng 老版 XML 接口(<yodaodict> 结构) ✅ 还活着
dict.youdao.com/dictvoice?audio=apple&type=1|2 真人发音,1=英音 2=美音 ✅
dict.youdao.com/pureaudio?docid=<id> 原声片段音频 ✅
dict.youdao.com/w/eng/apple/ 词条页 HTML(65 KB,内容齐全) ✅
dict.youdao.com/result?word=apple&lang=en 新版词条页(418 KB 的 SPA) ✅
m.youdao.com/dict?le=eng&q=apple 手机版页面 ✅
dict.youdao.com/example/daily 每日一句 ✅
dict.youdao.com/example/blng/eng/apple/ 双语例句页 ✅
dict.youdao.com/example/auth/eng/apple/ 权威例句页 ✅
aidemo.youdao.com/trans?q=hello&from=auto&to=zh-CHS 免费翻译(无需 key,返回译文 + 词典 + 朗读地址) ✅
aidemo.youdao.com/{ocr,tts,asr,correct,langdetect,audio} OCR、语音合成、语音识别、作文批改、语种识别、发音评测 ⚠️ 路径在,需正确参数/签名
openapi.youdao.com/api、/v2/api 有道智云正式通道 🔑 需 appKey + 签名
dict.youdao.com/wordbook/webapi/* 单词本(增删词) 🔒 需登录态

一个值得留意的趋势

有道这几年在把能力往 jsonapi 这一处收拢:零散的老接口陆续退役,而 jsonapi 一直在加东西——影视例句、歌词例句、AI 释义这些,都是后来才补上的。

对使用者来说这是纯好事:一个接口就够吃下整本词典,不用再维护一堆零散的调用。

三、资源类:图片、音频、视频怎么拿

1. 图片:一定要加缩略图参数

pic_dict 给的是原图地址(网易 CDN),直接下很亏:

原图   239 KB
+?imageView&thumbnail=320x320  →  14.7 KB

注意参数写法:?imageView&thumbnail=320x320 有效,?imageView2/... 无效(那是七牛的语法)。另外 PNG 格式对这个参数收益很小(仍有 70~150 KB),jpg 才是大头受益者。

2. 发音:dictvoice 连短语和中文都能读

请求 结果
?audio=apple&type=1(英)/ type=2(美) ✅ 9 KB mp3
?audio=look%20up(短语) ✅ 27 KB
?audio=苹果(中文) ✅ 1.9 KB

它的定位很清晰:把词与短语的真人发音这一件事做扎实——英音美音俱全,短语和中文都吃。整段的朗读则交给专门的语音合成去做(我用的是开源的 edge-tts),两者分工,刚好够用。

3. 视频和歌词:能直接玩

  • video_sents 给的 mp4 在 ydschool-video.nosdn.127.net,支持 Range 请求、可以跨站直接 <video> 播放(实测 1280px、5 秒);
  • music_sents 给的试听地址是 dict.youdao.com/dictserver/sentencemusic/playUrl?redirectUrl=...,会 302 到 CDN 上的 mp3,歌单还带网易云链接。

这两个区块的覆盖率是”看词的命”——apple、bank 这类常见词有,生僻词一条都没有。所以产品上不能假设有,没有就整块不显示。

覆盖率实测(8 个词)

区块 命中
权威例句 8/8
维基摘要 7/8
同义词 7/8
短语 7/8
词源 6/8
真题例句 6/8
影视例句 2/8
歌词例句 2/8

权威例句 8/8 这件事让我改了产品设计:原本我在单词卡片上显示的是”这个词在我们生成的段落里出现的那句话”,改成优先显示权威例句(带 FORBES/BBC 出处),段落那句降级成”本段:”的补充说明。真实出版物的例句,对记忆的锚定效果明显更好。

四、工程上的几个结论

1. 输出稳定,可以放心缓存

第一反应是”这么白给,肯定有限流”。实测同一个词连查 6 次:apple 稳定 8 张图 / 29 个字段,brochures 稳定 1 张 / 19 个字段,每次完全一致。

所以可以放心缓存。我最终做成了三级缓存:

flowchart LR
  A["① 服务器磁盘<br/>data/online_cache.json(60 天)<br/>data/images、data/audio"] --> B["② 用户浏览器<br/>Cache-Control: max-age"]
  B --> C["③ 页面内存<br/>同一段文本零请求"]
  • ① 省的是”再去问有道”——省钱、防限流、断网也能用
  • ② 省的是”再来问我的服务器”
  • ③ 省的是”连请求都不发”

2. 音频和视频,该不该缓存到自己的服务器上

我的结论是分开对待:

内容 大小 我的选择
图片(缩略图) 15 KB 服务端缓存,值得
单词发音 / 歌词试听 10~70 KB 服务端缓存,值得
影视视频 400 KB 只存地址,不代理——浏览器直连网易 CDN

视频不代理的原因很实际:服务器是按带宽/流量计费的,把 400 KB 的视频转发一遍”看起来更可控”,实际是把 CDN 的活抢到自己身上。只给地址的话,我的服务器在这条链路上流量为 0、磁盘为 0。

只给地址也有个小前提:视频始终由 CDN 提供,我们只是把地址转交给浏览器。真要更稳的时候(比如哪天对方调整了外链策略),再加一个代理接口就行——结构和我的图片代理一模一样。

3. 缓存头的两面:max-age 不等于”永久”

浏览器缓存有个细节容易被忽略:只写 max-age 而没写 ETag/Last-Modified,等于告诉浏览器”7 天内别来问”,但没给它”用来问的凭据”。

结果就是:7 天后再访问,浏览器手里没有任何可以拿去比较的东西,只能完整重新下载一遍。

做法 7 天后再访问 服务器出多少
只有 max-age 完整重下 9 KB
加 ETag 校验请求 → 304 Not Modified ~0.2 KB
max-age 一年 + immutable 连问都不问 0

我算过账:每个词 9 KB,一天 20 个词 ≈ 180 KB,一个月 5 MB。对这种量级的个人工具,做不做都行。但如果要”做对”,加 ETag 是标准姿势。(immutable 更适合那些 URL 里本身就带内容哈希的资源——比如我的图片接口 /api/image?f=<哈希>.jpg,文件名就是版本号,天然适合长缓存。)

顺便说一个容易被忽略的细节:浏览器只缓存 GET 请求。内容不变的资源(音频、图片),用带区分参数的 GET 地址去取,浏览器才可能替你把它记住;这也解释了为什么很多接口的 URL 里要带一个版本号或哈希。

五、致敬:向网易有道词典,向丁磊先生

写到这里,我想说点技术之外的话。

向网易有道词典致敬。

一个免费的查词工具,从桌面版时代一路做到 App、网页版,十几年里一直在往里面加东西:音标、权威例句、真人发音、图片词典、词源、影视片段、歌词例句、维基摘要、真题例句……这里面任何一条单独拎出来,都够包装成一门付费课;而它把这些打包在一个不用 key、不用登录的接口里,敞着给你。

更难得的是,它没有把”查词”这件事做成诱饵。对一代又一代中国学生来说,有道词典是查第一个英文单词的地方,也是很多年里唯一用得起的那本”词典”。这种陪伴,比任何广告词都有分量。

向丁磊先生致敬。

一家以邮箱和游戏起家的公司,愿意在”教育”这种回报最慢的事情上长期投入——免费的公开课、有道词典、有道翻译,以及这些对个人学习者几乎不设门槛的开放接口。这类事情做一年不难,做十几年不容易。作为创始人,他给这家公司种下的产品观很清楚:先把东西做好、先让用户受益,钱的事情往后放。这种”读书人的体面”,在今天的互联网里已经很少见了。

严格来说,有道词典并不是开源软件——它没有开放源码。但在”开放”这件事上,它做得比很多挂着开源名号的项目更彻底:不设 key、不设登录、不设配额,一个接口就把整本词典递到你手上。所以如果要给”最伟大的开放产品”颁个奖,我会给有道词典投一票——它是国内最好用的词典,也是”开放”这件事上最了不起的产品之一。

作为一个普通用户,我能回报的东西很有限:控制好请求频率、不滥用、不批量抓取,然后把这件好事告诉更多正在学英语的人。这大概就是对一份好意最大的尊重。

谢谢你,有道词典。谢谢你,丁磊先生。

最后:这是国内少见的开放

这一圈摸下来,我最想说的不是技术,而是这件事本身的难得。

一个词典产品,愿意把 29 个内容区块——权威例句、影视片段、歌词例句、词源、维基摘要、真人发音——免费、无门槛地给出来:不设 key、不设登录、不卡配额。对比之下,很多产品的“好东西”是留给会员的,接口是留给付费客户的;而有道连免费翻译都单独做了一个开放 demo(aidemo.youdao.com/trans)。

对做个人小工具的人、对自学的学生、对想把英语学好但预算有限的人,这是真金白银的方便。我那个复习工具就是最好的例子:配图、权威例句、词源、影视片段、歌词试听,全部白拿,一分钱没花。

能被这样大方地对待,作为使用者我只有敬意——这就是国内词典里少见的开放气度,实打实造福了学英语的人。

最后两句使用礼仪:这些都是公开可访问的只读接口,控制好请求频率、只用在个人学习上(探测的时候间隔半秒,是基本的体面),不要批量抓取,也不要转售词典内容——柯林斯、牛津那些是人家花版权费买来的。好东西值得珍惜,也值得被更多人用起来。

(本文为个人学习记录,未做任何破解,也未批量抓取。)

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部