IMDB是否提供API?[关闭]

Does IMDB provide an API? [closed]

提问人:tusay 提问时间:12/28/2009 最后编辑:user5822117tusay 更新时间:12/28/2021 访问量:522373

问:


我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便用事实和引文来回答。

6年前关闭。

我最近发现了一个电影管理器应用程序,它从IMDB数据库中获取数据。

IMDB是否为此提供了API,或者任何可用的第三方API?

ASP.NET-WEB-API imdb

评论

10赞 metdos 4/6/2011
IMDB上有评论的API吗?
1赞 Igor Parra 3/30/2014
要仅链接IMDB,请使用以下格式。<a href="http://www.imdb.com/title/{{{ $imdb_id }}}">{{{ $imdb_id }}}</a> BTW: imdb_id follows this pattern: tt0000000
1赞 Airlike 7/9/2014
这个电影管理器应用程序的名称是什么?我正在寻找这样的东西
0赞 mason 11/8/2014
@Airlike可能是 Plex。我确信一个人可以组织电影并且可以从IMDB中检索数据。

答:

8赞 Valentin Golev 12/28/2009 #1

https://deanclatworthy.com/tools.html 是一个 IMDB API,但由于滥用而关闭。

评论

1赞 PA. 1/26/2010
不幸的是,它很快就会关闭。你知道它是如何工作的吗?
1赞 justinhj 1/17/2011
它也只提供非常有限的搜索,仅按电影标题
12赞 Dean 3/18/2012
作为这个 API 的作者,我应该指出,上述评论现在是多余的,因为它没有被关闭,你现在可以按 IMDB ID 搜索。
0赞 2/25/2011
结帐 malhar2010.blogspot.com/2011/02/...,用于使用 IMDb api。
0赞 Sunny 11/23/2013
有关免费的 imdb API,请参阅此 99webtools.com/get-movie-info-imdb.php
99赞 Pekka 12/28/2009 #2

IMDB本身似乎分发数据,但仅限于文本文件:

http://www.imdb.com/interfaces

你可以用谷歌搜索几个 API。屏幕抓取是明确禁止的。 官方 API 似乎正在开发中,但已经存在多年了。

评论

7赞 1/2/2011
屏幕抓取怎么可能被禁止?
15赞 Pekka 1/2/2011
@omouse 从条款来看:这并不意味着这些条款在每个司法管辖区都可以自动执行,但它们在许多司法管辖区都可以执行。Robots and Screen Scraping: You may not use data mining, robots, screen scraping, or similar data gathering and extraction tools on this site, except with our express written consent as noted below.
7赞 Zombies 5/12/2013
是的,但此对话框是针对“机器人”的。显然我的机器人不懂英语,所以哦,好吧。
2赞 David Chappelle 12/22/2017
自 2017 年 12 月起,IMDb 不再更新这些文件。有一个新的 API,它以新格式提供数据。虽然更易于解析,但这种新格式是以前格式的一个非常小的子集。
3赞 CubicleSoft 3/1/2020
我意识到这是一个非常古老的问题和答案。但是,如果您未签署 EULA,则数据挖掘可公开访问的数据在法律上不可执行。即使您这样做了,如果信息可以通过其他方式公开访问,EULA 仍然不具有法律约束力。最近对LinkedIn做出了一个重大决定。请参阅:eff.org/deeplinks/2019/09/...IANAL,但 EFF 是。这是一个非常明智的裁决。如果你把信息放在互联网上,你应该期望人们用它做一些事情。
32赞 Byran Zaugg 2/5/2010 #3

是的,但不是免费的。

.....年费从 15,000 美元到更高不等,具体取决于数据的受众以及获得许可的数据。

URL :- http://www.imdb.com/licensing/

评论

3赞 rogerdpack 6/25/2011
看来它仅供“个人”免费使用,否则您必须与他们联系......哇,我们真的需要一个 imdb 的开放等价物,尽管我认为 tmdb 很接近......
0赞 Ian Vaughan 7/22/2013
嗨,这并不是对问题的真正回答,更多的是对上面的评论。
8赞 Byran Zaugg 7/23/2013
@IanVaughan,我相信我的回答直接解决了这个问题:问:“IMDB是否为此提供了API......?A:“是的......[链接到数据许可信息]。这不是我的错,IMDB没有公开记录API参考。
9赞 Ian Vaughan 7/23/2013
对不起,我认为你是对的,我纠正了。道歉。
3赞 myincome 7/24/2010 #4

Deanclatworthy似乎仍然有效 还有另一个:http://imdbapi.poromenos.org/

评论

1赞 Morten Bergfall 10/25/2010
而且(我差点写道,“甚至更好!”,开发者穴居人的本能很强;-)后者的来源是 github.com/skorokithakis/imdbapi
225赞 bfritz 11/25/2010 #5

新 API @ http://www.omdbapi.com

编辑:由于法律问题,不得不将服务转移到新的域:)

评论

1赞 Andrew G. Johnson 4/13/2011
这太棒了,不确定这是否真的是你的,或者你刚刚找到了它,但很想看到一些关于正常运行时间统计数据的东西,这样我就可以知道我可以指望多少:D
17赞 Jano 12/28/2011
如果有人想知道,这不是官方 API。参见 Pekka 或 Krinkle 的答案。
7赞 Daniel Magnusson 2/18/2012
它真的很慢..;(
16赞 bfritz 5/5/2012
@IanDavis,我目前正在为 API 获取一个新的更快/更大的专用服务器,这并不便宜!在接下来的几天里,我几乎得到了足够的捐款来购买它。该 API 每天收到超过 200 万个请求!
4赞 bfritz 7/2/2014
@OptimusCrime前几天我遇到了来自 85.XXX.XXX.XXX 范围的 IP 的问题,不得不暂时阻止所有这些 IP,直到我能够控制事情。可悲的是,这是我必须通过不需要 API 密钥来处理的权衡之一,人们往往会滥用它。
50赞 hdorio 1/5/2011 #6

TMDb API呢?

您可以按imdb_id搜索GET /find/{external_id}

https://developers.themoviedb.org/3/find/find-by-id

评论

10赞 Kostas 4/3/2011
不过,需要注册和 3 个工作日的审批流程
0赞 rogerdpack 6/25/2011
TMDB API 可以使用 DVD 的唯一 ID 来查找imdb_id(如果有帮助的话)。当然,假设他们列出了它。dvdid.info 也可能有所帮助。
8赞 oriharel 1/15/2014
vrinek - 错了,它立即向我发送了 API 密钥。
1赞 john16384 5/14/2019
为此获取 API 密钥是没有问题的。已经使用了一个多年,它的 API 设计得很好。
0赞 Adil Malik 5/19/2021
@Kostas 不适用于开发帐户。开发帐户立即注册。
0赞 vikas 3/10/2011 #7

这是一个 Python 模块,提供 API 从 IMDB 网站获取数据

http://techdiary-viki.blogspot.com/2011/03/imdb-api.html

评论

0赞 Farinha 4/18/2011
该模块使用屏幕抓取,这违反了 TOS
6赞 rogerdpack 6/25/2011
显然,在应用程序中使用IMDB是违反他们的TOS的......
0赞 Mike 5/4/2012
是的,您必须与他们联系并要求在您的商业应用程序中使用他们的内容。它说在他们的服务条款中,你必须得到IMDB的书面同意。
51赞 Johann 7/26/2011 #8

获取电影信息的另一个合法替代方案是烂番茄 API(由 Fandango 提供)。

评论

0赞 KerrM 7/27/2012
烂番茄 API 可以在商业应用程序中免费使用吗?例如,让用户从电影标题中获取电影的详细信息?
1赞 Johann 7/27/2012
看起来他们没有对商业或非商业应用程序进行任何区分。您可以随时在此处查看他们的 TOS: developer.rottentomatoes.com/apps/tos 尽管您每天只能拨打 10,000 个电话,每秒只能拨打 10 个电话
1赞 Omertron 8/21/2012
如果您提供的是非商业计划,并且每天需要超过 10,000 个电话,您可以与他们讨论许可问题。这些条款相当简单且易于遵守,因为您必须显示其徽标和/或评级的特定措辞短语。
7赞 Dan Dascalescu 2/18/2015
跆拳道?“该API仅供美国使用。在此区域之外部署内容必须得到烂番茄团队的批准。该 API 不得与任何第三方共享。
1赞 nicolascolman 4/5/2020
@DanDascalescu 真可惜。我打算在美国以外的地方使用它
477赞 Timo Tijhof 10/13/2011 #9

IMDb 有一个公共 API,虽然没有记录,但快速可靠(通过 AJAX 在官方网站上使用)。

搜索建议 API

// 1) Vanilla JavaScript (JSON-P)
function addScript(src) { var s = document.createElement('script'); s.src = src; document.head.appendChild(s); }
window.imdb$foo = function (results) {
  /* ... */
};
addScript('https://sg.media-imdb.com/suggests/f/foo.json');

// 2) Using jQuery (JSON-P)
jQuery.ajax({
    url: 'https://sg.media-imdb.com/suggests/f/foo.json',
    dataType: 'jsonp',
    cache: true,
    jsonp: false,
    jsonpCallback: 'imdb$foo'
}).then(function (results) {
    /* ... */
});

// 3) Pure JSON (with jQuery)
// Use a local proxy to the clean `/suggestion` API.
jQuery.getJSON('/api/imdb/?q=foo', function (results) {
    /* ... */
});

// 4) Pure JSON (plain JavaScript; Modern ES6, ES2017, and Fetch API)
// Serve a "/api" route in your app, that proxies (and caches!)
// to v2.sg.media-imdb.com/suggestion/h/hello.json
const resp = await fetch('/api/imdb/?q=foo');
const results = await resp.json();

高级搜索


请注意,这些 API 是非官方的,可能随时更改!


更新(2019 年 1 月):高级 API 不再存在。好消息是,建议 API 现在也支持按电影名称和演员姓名搜索的“高级”功能。

评论

2赞 Omni5cience 12/22/2011
回复:JSONP API 没有优雅地回退,(至少)它确实返回了 HTTP 错误代码,但我同意响应正文是 XML 很有趣。
10赞 Timo Tijhof 9/29/2012
我最近注意到它还包括一个用于图像的“i”属性。然而,其中提到的 url 是一个非常大的图像(可能是原始图像)。为了获取缩略图,IMDb 使用以下方法:.if (ua.i) { c.img = { src: ua.i[0].replace("._V1_.jpg", "._V1._SX40_CR0,0,40,54_.jpg"), width: 40, height: 54 } }
2赞 Chris McGrath 12/8/2012
您不能只指定 jsonp 吗?Ajax 如果您使用 jquery 获得 json,我认为 getjson 已被弃用,即使编写它,我相信它已被弃用
2赞 Timo Tijhof 12/10/2012
@ChrisMcGrath:我没想过要用jQuery.ajax jsonpCallback,我已经把它加到了答案中,谢谢!至于 $.getJSON:不,它肯定没有被弃用。它只是 $.ajax 的一个小包装器。
2赞 Cyril Mestrom 2/18/2013
有谁知道如何在高级搜索中获取包含的图像?似乎他们只是带着建议来的......
2赞 bpapa 3/16/2012 #10

最近在SXSWi 2012上,在他们的“Mashery Lounge”中,有一个展台,展示了一个由rovi调用的类似IMDB的API。它不是一个免费的 API,但根据我与之交谈过的销售人员的说法,他们根据您的预算提供转速分成或固定的使用费。我还没有用过它,但它看起来很酷。

评论

0赞 BishopZ 4/23/2019
不再活着。
0赞 Mike 5/4/2012 #11

我非常有信心您找到的应用程序实际上从 Themoviedb.org 的 API 获取信息(他们从 IMDB 获取大部分内容)。他们有一个免费的开放 API,该 API 被许多电影组织者/XMBC 应用程序使用。

22赞 Omertron 5/9/2012 #12

有一个 JSON API 供移动应用程序使用,网址为 http://app.imdb.com

但是,警告相当严重:

仅供 IMDb 书面授权的客户使用。
未经授权的客户的作者和用户对其行为接受全部法律风险/责任。

我认为这是为那些通过他们的 API 访问数据的许可证付费的开发人员准备的。

编辑:只是为了踢球,我写了一个客户端库来尝试从 API 读取数据,你可以在这里找到它:api-imdb

显然,你应该注意这个警告,实际上,使用像TheMovieDB这样的东西作为一个更好、更开放的数据库。

然后你可以使用这个 Java API 包装器(我写的):api-themoviedb

评论

1赞 arm.localhost 12/26/2014
我将为 NodeJS 编写您的库。谢谢你的分享!
0赞 0xMH 8/18/2017
有人如何获得使用它的 API 密钥?
0赞 Gfy 6/28/2018
使用此 API 的 Python 库: pypi.org/project/imdbpie code.richard.do/richardARPANET/imdb-pie @Mohammed 查看 imdb.com/licensing
2赞 ThePCWizard 9/10/2012 #13

NetFixx更像是个性化的媒体服务,但您可以将其用于有关电影的公共信息。它支持 Javascript 和 OData。
另请看JMDb:该信息与您使用IMDb网站时获得的信息基本相同。

评论

1赞 James Skemp 8/24/2015
Netflix 大约一年前关闭了他们的公共 API。由于他们删除了整个开发者子域,包括说他们要关闭它的帖子,这里有一个关于它的新闻的链接:gigaom.com/2014/11/14/......
1赞 fubo 5/29/2013 #14

好的,我找到了这个IMDB抓取工具

对于 C#:http://web3o.blogspot.de/2010/11/aspnetc-imdb-scraping-api.html

PHP在这里: http://web3o.blogspot.de/2010/10/php-imdb-scraper-for-new-imdb-template.html

或者,C# 的 imdbapi.org 实现:

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Xml.Linq;
using HtmlAgilityPack; // http://htmlagilitypack.codeplex.com/


public class IMDBHelper
{

    public static imdbitem GetInfoByTitle(string Title)
    {
        string url = "http://imdbapi.org/?type=xml&limit=1&title=" + Title;
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
        req.Method = "GET";
        req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
        string source;
        using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
        {
            source = reader.ReadToEnd();
        }
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(source);        
        XDocument xdoc = XDocument.Parse(doc.DocumentNode.InnerHtml, LoadOptions.None);
        imdbitem i = new imdbitem();
        i.rating = xdoc.Descendants("rating").Select(x => x.Value).FirstOrDefault();
        i.rating_count = xdoc.Descendants("rating_count").Select(x => x.Value).FirstOrDefault();
        i.year = xdoc.Descendants("year").Select(x => x.Value).FirstOrDefault();
        i.rated = xdoc.Descendants("rated").Select(x => x.Value).FirstOrDefault();
        i.title = xdoc.Descendants("title").Select(x => x.Value).FirstOrDefault();
        i.imdb_url = xdoc.Descendants("imdb_url").Select(x => x.Value).FirstOrDefault();
        i.plot_simple = xdoc.Descendants("plot_simple").Select(x => x.Value).FirstOrDefault();
        i.type = xdoc.Descendants("type").Select(x => x.Value).FirstOrDefault();
        i.poster = xdoc.Descendants("poster").Select(x => x.Value).FirstOrDefault();
        i.imdb_id = xdoc.Descendants("imdb_id").Select(x => x.Value).FirstOrDefault();
        i.also_known_as = xdoc.Descendants("also_known_as").Select(x => x.Value).FirstOrDefault();
        i.language = xdoc.Descendants("language").Select(x => x.Value).FirstOrDefault();
        i.country = xdoc.Descendants("country").Select(x => x.Value).FirstOrDefault();
        i.release_date = xdoc.Descendants("release_date").Select(x => x.Value).FirstOrDefault();
        i.filming_locations = xdoc.Descendants("filming_locations").Select(x => x.Value).FirstOrDefault();
        i.runtime = xdoc.Descendants("runtime").Select(x => x.Value).FirstOrDefault();
        i.directors = xdoc.Descendants("directors").Descendants("item").Select(x => x.Value).ToList();
        i.writers = xdoc.Descendants("writers").Descendants("item").Select(x => x.Value).ToList();
        i.actors = xdoc.Descendants("actors").Descendants("item").Select(x => x.Value).ToList();
        i.genres = xdoc.Descendants("genres").Descendants("item").Select(x => x.Value).ToList();
        return i;
    }

    public class imdbitem
    {
        public string rating { get; set; }
        public string rating_count { get; set; }
        public string year { get; set; }
        public string rated { get; set; }
        public string title { get; set; }
        public string imdb_url { get; set; }
        public string plot_simple { get; set; }
        public string type { get; set; }
        public string poster { get; set; }
        public string imdb_id { get; set; }
        public string also_known_as { get; set; }
        public string language { get; set; }
        public string country { get; set; }
        public string release_date { get; set; }
        public string filming_locations { get; set; }
        public string runtime { get; set; }
        public List<string> directors { get; set; }
        public List<string> writers { get; set; }
        public List<string> actors { get; set; }
        public List<string> genres { get; set; }
    }

}

评论

1赞 nicolascolman 4/5/2020
它看起来不错,但根据IMDB的说法,禁止使用这种工具。更多信息 help.imdb.com/article/imdb/general-information/...
3赞 Brett Pennings 11/17/2013 #15

这是一个简单的解决方案,它根据 Krinkle 的查询按名称获取节目:

你可以通过让你的服务器获取 URL 而不是尝试直接使用 AJAX 获取它来绕过同源策略,而且你不必使用 JSONP 来做到这一点。

Javascript (jQuery):

function getShowOptionsFromName (name) {
    $.ajax({
        url: "ajax.php",
        method: "GET",
        data: {q: name},
        dataType: "json"
    }).done(function(data){
        console.log(data);
    });
}

PHP(在文件 ajax.php 中):

$q = urlencode($_GET["q"]);
echo file_get_contents("http://www.imdb.com/xml/find?json=1&nr=1&tt=on&q=$q");
9赞 markiv 12/31/2013 #16

找到这个

IMDbPY 是一个 Python 包,可用于检索和管理 关于电影、人物、角色和 公司。

http://imdbpy.sourceforge.net/

评论

1赞 Gino Mempin 10/6/2019
PyPi 也提供它: pypi.org/project/IMDbPY
4赞 Akshay Khale 3/25/2016 #17

如果你想要电影细节 API,那么你可以考虑

OMDB API,即开放电影数据库。它 返回IMDB评分,IMDB评分,并且还具有烂番茄评分。

否则你可以使用

My Api Films 允许您使用 IMDB ID 进行搜索,它会返回详细信息,但它有请求限制。

7赞 PirateApp 8/18/2016 #18

截至 2016 年 8 月,IMDB 似乎还没有直接的 API,但我看到很多人在上面写了抓取工具和东西。这是使用票房嗡嗡声 API 访问电影数据的更标准方法。所有 JSON 格式的回复和每天 5000 次查询的免费计划

API 提供的内容列表

  1. 电影学分
  2. 电影 ID
  3. 电影图像
  4. 通过IMDB ID获取电影
  5. 获取最新电影列表
  6. 获取新版本
  7. 获取电影上映日期
  8. 获取特定电影的可用翻译列表
  9. 获取电影的视频、预告片和预告片
  10. 按标题搜索电影
  11. 还支持电视节目、游戏和视频