1. SIS Lab
  2. >
  3. Blog
  4. >
  5. TED APIを触ってみる

TED APIを触ってみる

更新日:2021.02.11 作成日:2014.11.21

TED - Welcome to TEDLabs

いつのまにかTEDのAPIが公開されていたので、少し触ってみる。

2017/09/01追記

TED APIのサービスは終了となりました。

昔は、APIが公開されてなかったので、スクレイピングで取得していた。 (htmlの構造が今は変わってるので、以下のコードでは取得できません)

TEDの英語原稿を取得する - ギークを夢見るじょーぶん男子

require 'rubygems'
require 'open-uri'
require 'json'
require 'nokogiri'

url = "http://www.ted.com/talks/brene_brown_listening_to_shame.html"
doc = Nokogiri::HTML(open(url))

ted_id = doc.xpath("//div[@id='share_and_save']").first.attribute("data-id")

open("http://www.ted.com/talks/subtitles/id/#{ted_id}/lang/en") do |f|
  json = JSON.parse(f.read)
  json['captions'].each do |j|
    puts j['content']
  end
end

TED APIを使い、以下のエンドポイント(言い方あってる?)を叩くと、結果がjsonで返ってくる。

https://api.ted.com/v1/talks.json?api-key=#{TED_API}&filter=slug:matt_cutts_try_something_new_for_30_day

この id が、動画の固有IDになる。すばらしい。

{"talks":
  [{"talk":
    {"id":1183,
     "event_id":64,
     "name":"Matt Cutts: Try something new for 30 days",
     "description":"Is there something you've always meant to do, wanted to do, but just ... haven't? Matt Cutts suggests: Try it for 30 days. This short, lighthearted talk offers a neat way to think about setting and achieving goals.",
     "slug":"matt_cutts_try_something_new_for_30_days",
     "native_language_code":"en",
     "published_at":"2011-07-01 15:14:00",
     "recorded_at":"2011-03-03 00:00:00",
     "updated_at":"2014-11-12 20:04:29",
     "released_at":"2014-11-12 20:04:29"}}],
    "counts":{"this":1,"total":1}
}

ドキュメント

メモ書き程度に書き散らかす。

TED I/O Docs

Events

TEDのイベントがあった箇所を取得する

{
    "event": {
        "id": 1,
        "name": "TED2008",
        "description": "",
        "header_text": "",
        "slug": "2008",
        "url": "",
        "starts_at": "2008-02-27 00:00:00"
    }
}

Ratings

ランキング?

Rating Words

投票するときの、表現?

{
    "rating_words": [{
        "rating_word": {
            "id": 1,
            "name": "Beautiful"
        }
    }, {
        "rating_word": {
            "id": 2,
            "name": "Confusing"
        }
    }, {
        "rating_word": {
            "id": 3,
            "name": "Courageous"
        }
    }, {
        "rating_word": {
            "id": 7,
            "name": "Funny"
        }
    }, {
        "rating_word": {
            "id": 8,
            "name": "Informative"
        }
    }, {
        "rating_word": {
            "id": 9,
            "name": "Ingenious"
        }
    }, {
        "rating_word": {
            "id": 10,
            "name": "Inspiring"
        }
    }, {
        "rating_word": {
            "id": 11,
            "name": "Longwinded"
        }
    }, {
        "rating_word": {
            "id": 21,
            "name": "Unconvincing"
        }
    }, {
        "rating_word": {
            "id": 22,
            "name": "Fascinating"
        }
    }, {
        "rating_word": {
            "id": 23,
            "name": "Jaw-dropping"
        }
    }, {
        "rating_word": {
            "id": 24,
            "name": "Persuasive"
        }
    }, {
        "rating_word": {
            "id": 25,
            "name": "OK"
        }
    }, {
        "rating_word": {
            "id": 26,
            "name": "Obnoxious"
        }
    }],
    "counts": {
        "this": 14,
        "total": 14
    }
}

Speakers

:id スピーカの固有ID

スピーカーの情報を得る

Talks

Themes

題名、テーマに関する取得

Playlists

プレイリスト関連の検索

Query

カテゴリと検索文字列を指定して検索結果を得る

B! Pocket
スポンサーリンク

Related contents

TECH

2017.09.08

ASIN, JAN, ISBNコードについて

TECH

2017.09.08

楽天APIの調査結果

TECH

2017.02.19

Amazon Product Advertising APIを利用するためのIAMユーザ登録とアクセスキーの発行

TECH

2016.06.05

google-api-ruby-clientからGoogle Adsense Management APIを操作する方法

TECH

2012.04.23

Happiness 私たちが幸せを感じる理由

TECH

2012.03.20

TEDの英語原稿を取得する