免费数据库:哪个数据转储文件包含“imdb_id”?

11

我运营 IMDbAPI.com 网站,一直使用必应搜索 API 从标题搜索中查找 IMDb ID。由于 Bing 正在将其 API 转移到 Azure Marketplace(8月1日开始),因此不再提供免费服务。我尝试使用 Freebase 来解决这些 ID 的问题,但在前 8 小时内就达到了他们的 100k 上限(我的网站目前每天大约有 300 万次请求,但只有 20-30 万次是标题搜索)。

这正是为什么他们提供数据转储文件的原因,

我已经下载了 Film 文件夹中的大部分文件,但无法找到他们存储的 "/authority/imdb/title" imdb id 命名空间数据。

https://www.googleapis.com/freebase/v1/mqlread?query={"type":"/film/film","name":"True%20Grit","imdb_id":null,"initial_release_date>=":"1969-01","limit":1}

这是我当前访问 ID 的方式。

请问哪个文件包含此信息?以及如何从电影标题/ID 链接回到它?

2个回答

7
那个“imdb_id”属性由“/authority/imdb/title”命名空间中的一个键支持,因此您要查找的行是:/authority/imdb/title
/m/015gxt       /type/object/key        /authority/imdb/title   tt0065126

在文件http://download.freebase.com/datadumps/latest/freebase-datadump-quadruples.tsv.bz2中。

这是一个4GB的文件,所以准备等待一段时间进行下载。请注意,所有内容都是由MID键控的,因此如果您的数据库中没有它,您需要先找出它。

使用MQL而不是数据转储的等效查询是https://www.googleapis.com/freebase/v1/mqlread?query=%7B%22type%22%3a%22/film/film%22,%22name%22%3a%22True%20Grit%22,%22imdb_id%22%3anull,%22initial_release_date%3E=%22%3a%221969-01%22,%22mid%22:null,%22key%22:[{%22namespace%22:%22/authority/imdb/title%22}],%22limit%22:1%7D&indent=1

编辑:附言,我相当确定浏览目录中的文件将消失,因此即使您能在那里找到信息,也不要依赖它们。


1
我一开始试图避免那个4GB(提取后33GB)的文件,但最终还是下载了下来,并花了过去三个小时寻找任何可以打开/解析它的方法。最终我使用了微软的日志分析器2.2,效果非常好!LogParser.exe -i:TSV "SELECT Col1, Col4 INTO C:\imdbList.csv FROM C:\freebase.tsv WHERE Col3 like '%imdb/title%'" -o:CSV -headers:OFF -iHeaderFile:"C:\header.txt"现在我有了一个3MB的CSV文件,其中包含所有的Freebase ID和IMDb的ID。 - bfritz
接下来,我需要从“Film.tsv”中获取“标题”,“发布年份”和“别名”,然后才能在SQL中连接数据...最终能够进行搜索 :) 但是我依赖于浏览文件夹中的额外文件“Films.tsv”,这些文件会很快消失吗? - bfritz
处理压缩文件可能会更快(而且肯定占用更少的磁盘空间),所以我不会解压它。任何Linux系统(或Windows上的Cygwin)都可以轻松处理此问题,无需下载奇怪的专有工具。等效的命令是bzgrep“authority/imdb/title”freebase-datadump-quadruples.tsv.bz2 | cut -f 1,4 > imdbList.csv。即使在笔记本电脑上,它也可以在不到20分钟的时间内解压缩和搜索那个4GB的文件,并输出142K对ID。 - Tom Morris
这是我能找到的最接近关于TSV转储退役的公告:http://markmail.org/message/6yve4c36p6pwhchv - Tom Morris

0

之前的答案很好,只是更简洁的查询版本可能是:

query = [{
          'type': '/film/film',
          'name': 'prometheus',
          'imdb_id': null,
          ...
        }];

由于其与前述内容无异,因此未提及MQL请求的其余部分。希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接