TED APIを触ってみる
更新日:2022.07.02
作成日:2014.11.21
いつのまにか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}
}
ドキュメント
メモ書き程度に書き散らかす。
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
プレイリスト関連の検索
Search
Query
カテゴリと検索文字列を指定して検索結果を得る
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の英語原稿を取得する