起因很简单:我在写一个「生词复习工具」,需要给每个单词配音标、例句、图片。本来准备老老实实调翻译 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)。
对做个人小工具的人、对自学的学生、对想把英语学好但预算有限的人,这是真金白银的方便。我那个复习工具就是最好的例子:配图、权威例句、词源、影视片段、歌词试听,全部白拿,一分钱没花。
能被这样大方地对待,作为使用者我只有敬意——这就是国内词典里少见的开放气度,实打实造福了学英语的人。
最后两句使用礼仪:这些都是公开可访问的只读接口,控制好请求频率、只用在个人学习上(探测的时候间隔半秒,是基本的体面),不要批量抓取,也不要转售词典内容——柯林斯、牛津那些是人家花版权费买来的。好东西值得珍惜,也值得被更多人用起来。
(本文为个人学习记录,未做任何破解,也未批量抓取。)

