IMDB는 API를 제공합니까? [닫은]


644

최근에 IMDB 데이터베이스 에서 데이터를 가져 오는 영화 구성 응용 프로그램을 찾았습니다 .

합니까 IMDB는 이에 대한 API를 제공하거나 제 3자가 사용 가능한 API?


10
IMDB에 대한 검토를위한 API가 있습니까?
metdos

1
IMDB를 연결하려면 다음 형식을 사용하십시오. <a href="http://www.imdb.com/title/{{{ $imdb_id }}}">{{{ $imdb_id }}}</a> BTW: imdb_id follows this pattern: tt0000000
Igor Parra

1
이 영화 주최자 응용 프로그램의 이름은 무엇입니까? 나는 그런 것을 찾고 있습니다
Airlike

@Airlike 어쩌면 Plex . 영화를 정리하고 IMDB에서 데이터를 검색 할 수 있다는 것을 알고 있습니다.
메이슨

답변:


453

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 that strips the "padding" of JSON-P,
// e.g. "imdb$foo(" and ")", leaving pure JSON only.
jQuery.getJSON('/api/imdb/?q=foo', function (results) {
    /* ... */
});

// 4) Pure JSON (ES2017 and Fetch API)
// Using a custom proxy at "/api" that strips the JSON-P padding.
const resp = await fetch('/api/imdb/?q=foo');
const results = await resp.json();

고급 검색


이 API는 비공식적이며 언제든지 변경 될 수 있습니다!


업데이트 (2019 년 1 월) : 고급 API가 더 이상 존재하지 않습니다. 좋은 소식은 Suggestions API가 이제 영화 제목과 배우 이름으로 검색하는 "고급"기능을 지원한다는 것입니다.


2
RE : JSONP API는 정상적으로 떨어지지 않지만 HTTP 오류 코드를 반환하지만 응답 본문이 XML이라는 것이 재미 있다는 데 동의합니다.
Omni5cience

9
최근에 이미지의 '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 } }..
Timo Tijhof

2
jquery로 json을 얻는다면 getjson이 더 이상 사용되지 않는다고 생각합니다. 이것은 더 이상 사용되지 않습니다.
Chris McGrath

2
@ChrisMcGrath : jQuery.ajax jsonpCallback 사용에 대해 생각하지 못했습니다. 감사에 추가했습니다. 감사합니다! $ .getJSON에 관해서는 : 아니오, 가장 확실하게 사용되지 않습니다. $ .ajax 주위의 작은 래퍼입니다.
Timo Tijhof

2
고급 검색에 이미지를 포함시키는 방법을 아는 사람이 있습니까? 그들은 단지 제안에 올 것 같은데 ...
시릴 Mestrom

217

새로운 API @ http://www.omdbapi.com

편집 : 법적 문제로 인해 서비스를 새로운 도메인으로 이동해야했습니다 :)


1
정말 대단합니다. 이것이 실제로 자신의 것인지 아니면 방금 찾은 것이지만 가동 시간 통계 주위에 무언가를보고 싶어서 얼마나 믿을 수 있는지 알 수 있습니다 : D
Andrew G. Johnson

16
궁금한 사람은 공식 API가 아닙니다. 이에 대한 Pekka 또는 Krinkle 답변을 참조하십시오.
Jano

7
그 정말 느린 .. (
다니엘 그누

14
@IanDavis, 나는 현재 API를위한 새로운 더 빠르고 더 큰 전용 서버를 얻는 데 노력하고 있습니다. 나는 앞으로 며칠 안에 이것을 얻기에 충분한 기부금을 받았습니다. API는 하루에 2 백만 건 이상의 요청을 받고 있습니다!
bfritz

4
@OptimusCrime 전날 85.XXX.XXX.XXX 범위의 IP와 관련하여 문제가 발생하여 제어 할 수있을 때까지 일시적으로 모든 항목을 차단해야했습니다. 슬프게도 이것은 API 키를 요구하지 않음으로써 다루어야 할 절충점 중 하나입니다. 사람들은 단지 그것을 도용하는 경향이 있습니다.
bfritz

93

IMDB 자체는 텍스트 파일로만 데이터를 배포하는 것 같습니다.

http://www.imdb.com/interfaces

이를 위해 몇 가지 API가 있습니다. 스크린 스크래핑은 명시 적으로 금지되어 있습니다. 공식 API가 작동하는 것처럼 보이지만 이미 수년 동안 사용되었습니다.


7
화면 스크래핑이 금지되는 방법은 무엇입니까?

11
@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.이 용어가 모든 관할권에서 자동으로 적용되는 것은 아니지만 많은 용어가 있습니다.
Pekka

6
예. 그러나이 대화는 "로봇"에 관한 것입니다. 분명히 내 로봇은 영어를 잘 이해하지 못합니다.
좀비

2
2017 년 12 월 현재이 파일은 더 이상 IMDb에서 업데이트하지 않습니다. 새로운 형식으로 데이터를 제공하는 새로운 API가 있습니다. 파싱하기는 쉽지만이 새로운 형식은 이전 형식의 매우 작은 하위 집합입니다.
David Chappelle

1
나는 이것이 매우 오래된 질문과 답변이라는 것을 알고 있습니다. 그러나 EULA에 서명하지 않은 경우 공개적으로 액세스 가능한 데이터 마이닝 데이터는 법적으로 시행 할 수 없습니다. 귀하가 그렇게하더라도 다른 방법으로 정보에 공개적으로 액세스 할 수있는 경우 EULA는 여전히 법적 구속력이 없습니다. 최근 링크드 인에 대한 이러한 영향에 대한 주요 결정이 내려졌습니다. 참조 : eff.org/deeplinks/2019/09/… IANAL이지만 EFF는 있습니다. 매우 현명한 판결입니다. 인터넷에 정보를 넣으면 사람들이 정보를 사용하는 것을 기대해야합니다.
CubicleSoft

48

영화 정보를 얻는 또 다른 법적 대안은 Rotten-Tomatoes API (Fandango 제공)입니다.


썩은 토마토 API는 상용 응용 프로그램에서 무료로 사용할 수 있습니까? 예를 들어, 사용자가 제목에서 영화의 세부 정보를 받도록 하시겠습니까?
KerrM

1
상업적 또는 비상업적 앱을 구별하는 것처럼 보이지 않습니다. 당신은 항상 그들의 TOS를 볼 수 있습니다 : developer.rottentomatoes.com/apps/tos 비록 당신이 하루에 10,000 통화와 초 당 10 통화로 제한 될지라도
Johann

1
비상업적 프로그램을 제공하고 있고 하루에 10,000 번 이상의 전화가 필요한 경우 라이선스에 대해 이야기 할 수 있습니다. 용어는 등급에 대해 로고 및 / 또는 특정 문구를 표시해야한다는 점에서 상당히 단순하고 준수하기 쉽습니다.
Omertron

6
WTF? "API는 미국에서만 사용하도록되어 있습니다.이 영역 외부에 콘텐츠를 배포하려면 Rotten Tomatoes 팀의 승인을 받아야합니다. API는 타사와 공유 할 수 없습니다."
Dan Dascalescu 1

1
@DanDascalescu 얼마나 유감입니다. 나는 미국 밖에서 그것을 사용하려고했다
nicolascolman

48

TMDb API는 어떻습니까?

imdb_id로 검색 할 수 있습니다 GET /find/{external_id}

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


8
그래도 등록과 3 영업일 승인 절차가 필요합니다
Kostas

tmdb API는 DVD의 고유 ID를 사용하여 imdb_id를 조회 할 수 있습니다. 물론 목록에 있다고 가정합니다. dvdid.info도 도움이 될 수 있습니다.
rogerdpack 2016 년

7
vrinek-잘못되었습니다. API 키를 즉시 보냈습니다.
oriharel

1
이를 위해 API 키를 얻는 것은 문제가되지 않습니다. 수년 동안 하나를 사용해 왔으며 API는 잘 설계되었습니다.
john16384

30

예,하지만 무료는 아닙니다.

..... 데이터에 대한 대상 및 라이센스가 부여 된 데이터에 따라 15,000 달러에서 1 년에 이르는 연간 요금.

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


1
"개인적"인 경우에만 무료로 표시됩니다. 그렇지 않으면 연락해야합니다. tmdb가 가까이 있다고 가정하지만 실제로 imdb와 동등한 제품이 필요합니다 ...
rogerdpack

안녕하세요, 이것은 실제로 질문에 대한 답변이 아니며 위의 의견입니다.
Ian Vaughan

6
@IanVaughan, 내 대답은이 질문을 직접 해결한다고 믿습니다. Q : "IMDB는이를 위해 API를 제공합니까 ...?" A : "예 ... [데이터 라이센스 정보 링크]." 내 잘못이 아닙니다. IMDB는 API 참조를 공개적으로 문서화하지 않습니다.
Byran Zaugg

8
죄송합니다, 당신이 옳다고 생각합니다. 사과.
Ian Vaughan

22

http://app.imdb.com 에 모바일 애플리케이션에서 사용하기위한 JSON API가 있습니다.

그러나 경고는 상당히 심각합니다.

IMDb가 서면으로 승인 한 클라이언트 만 사용하십시오.
권한이없는 클라이언트의 작성자와 사용자는 자신의 행동에 대한 법적 노출 / 책임에 대해 전적으로 동의합니다.

나는 이것이 API를 통해 데이터에 액세스하기 위해 라이센스를 지불하는 개발자를위한 것이라고 생각합니다.

편집 : 차기, API에서 데이터를 읽으려고 클라이언트 라이브러리를 작성했습니다. 여기에서 찾을 수 있습니다 : api-imdb

분명히 경고에주의를 기울여야하며 실제로 TheMovieDB 와 같은 것을 더 좋고 열린 데이터베이스로 사용하십시오.

그런 다음이 Java API 래퍼 (내가 쓴)를 사용할 수 있습니다 : api-themoviedb


1
NodeJS 용 라이브러리를 작성하겠습니다. 공유해 주셔서 감사합니다!
arm.localhost

누군가가 그것을 사용하기 위해 API 키를 어떻게 얻을 수 있습니까?
0xMH

이 API를 사용하는 Python 라이브러리 : pypi.org/project/imdbpie code.richard.do/richardARPANET/imdb-pie @Mohammed imdb.com/licensing
Gfy


9

https://deanclatworthy.com/tools.html 은 IMDB API이지만 악용으로 인해 다운되었습니다.


1
불행히도 곧 폐쇄 될 것입니다. 어떻게 작동하는지 아십니까?
PA.

1
그것은 영화 제목으로 만 매우 제한된 검색만을 제공합니다
justinhj

체크 아웃 malhar2010.blogspot.com/2011/02/... IMDB API를 사용합니다.

12
이 API의 작성자로서, 위의 주석은 닫히지 않고 중복되어 있으며 이제 IMDB ID로 검색 할 수 있음을 지적해야합니다.
Dean

무료 imdb API에 대해서는 다음 99webtools.com/get-movie-info-imdb.php를
Sunny

6

IMDB에는 2016 년 8 월 현재 직접 API가없는 것 같지만 많은 사람들이 위의 스크레이퍼 및 자료를 작성하는 것을 보았습니다. Box Office Buzz API를 사용하여 영화 데이터에 액세스하는보다 표준적인 방법은 다음과 같습니다 . JSON 형식의 모든 응답 및 무료 계획에 대한 하루에 5000 개의 쿼리

API가 제공하는 것들의 목록

  1. 영화 크레딧
  2. 영화 ID
  3. 영화 이미지
  4. IMDB ID로 영화 가져 오기
  5. 최신 영화리스트 받기
  6. 새로운 릴리스 받기
  7. 영화 개봉 날짜 가져 오기
  8. 특정 영화에 사용할 수있는 번역 목록을 가져옵니다.
  9. 영화에 대한 동영상, 예고편 및 티저 받기
  10. 제목으로 영화 검색
  11. TV 쇼, 게임 및 비디오 지원


3

다음은 Krinkle의 쿼리를 기반으로 이름별로 프로그램을 가져 오는 간단한 솔루션입니다.

서버가 AJAX로 직접 가져 오는 대신 URL을 가져 오도록하여 동일한 출처 정책을 해결할 수 있으며 JSONP를 사용하지 않아도됩니다.

자바 스크립트 (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");

2

최근 SXSWi 2012의 "Mashery Lounge"에는 rovi 에서 IMDB와 유사한 API 부스가 있었습니다 . 그것은 무료 API는 아니지만, 내가 말한 영업 사원에 따르면 예산에 따라 rev share 또는 정액 요금을 제공합니다. 아직 사용하지는 않았지만 꽤 멋져 보입니다.


더 이상 살아 있지 않습니다.
BishopZ

2

NetFilx 는 개인화 된 미디어 서비스에 가깝지만 영화와 관련된 공개 정보로 사용할 수 있습니다. Javascript 및 OData를 지원합니다.
또한 볼 JMDb을 다음 IMDB 웹 사이트를 사용할 때 얻을 수있는 정보는 기본적으로 동일합니다.


1
Netflix는 거의 1 년 전에 공개 API를 종료했습니다. 그들이 폐쇄한다는 소식을 포함하여 전체 개발자 하위 도메인을 중단 했으므로
James Skemp

1

알았어이 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; }
    }

}

잘 보이지만 IMDB에 따르면 이러한 종류의 도구를 사용하는 것은 금지되어 있습니다. 추가 정보 help.imdb.com/article/imdb/general-information/…
nicolascolman

1

영화 세부 정보 API를 원한다면 고려할 수 있습니다.

Open movies Database 인 OMDB API IBDB 등급, IMDB 투표를 반환하며 Rotten Tomato 등급도 포함 할 수 있습니다.

그렇지 않으면 당신은 사용할 수 있습니다

My Api Films 를 사용하면 IMDB ID로 검색하고 자세한 정보를 반환 할 수 있지만 요청 제한이 있습니다.



0

다음은 IMDB 웹 사이트에서 데이터를 가져 오는 API를 제공하는 Python 모듈입니다.

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


이 모듈은 화면 스크래핑을 사용하는데, 이는 TOS에 반대되는
크레 핑

6
앱에서 IMDB 를 전혀 사용하지 않는 것은 분명히 TOS에
위배됩니다

나중에 연락하여 상용 응용 프로그램에서 해당 콘텐츠를 사용하도록 요청해야합니다. TOS에서는 IMDB의 서면 동의가 있어야합니다.
Mike

0

당신이 찾은 응용 프로그램이 실제로 Themoviedb.org의 API (IMDB에서 대부분의 정보를 얻음)에서 정보를 얻는다고 확신합니다. 그들은 영화 주최자 / XMBC 응용 프로그램에서 많이 사용되는 무료 공개 API를 가지고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.