rubyでYoutube Data api から動画の再生時間をとってくるコードを書きました
Youtube Data apiでは
https://www.googleapis.com/youtube/v3/videos?id=動画URLの末尾11桁&key=APIキー&part=snippet,contentDetails,statistics,status
にアクセスすると動画の再生時間やタイトル、視聴回数などがJSON方式で取得できます
ruby
1def get_duration(id) 2 require 'net/http' 3 uri = URI.parse('https://www.googleapis.com/youtube/v3/videos?id='+ id + 4 '&key=(私のAPIキー)&part=snippet, 5 contentDetails,statistics,status') 6 json = Net::HTTP.get(uri) 7 videoInfo = JSON.parse(json) 8 duration = videoInfo['items'][0]['contentDetails']['duration'] 9 return duration 10end
json
1--省略-- 2 "contentDetails": { 3 "duration": "PT5M9S", <-- ここ 4 "dimension": "2d", 5 "definition": "hd", 6 "caption": "false", 7 "licensedContent": true, 8 "projection": "rectangular" 9 }, 10--省略--
5分9秒の動画では”PT5M9S”という文字列が得られました
この文字列を秒数に変換したいです(この場合数値型の309にしたいです)
また試しにYouTubeで一番長いと言われる動画の再生時間をとってくると"P3W2DT19H1M41S"という文字列が得られました
更にYouTubeで一番短いと言われる動画の再生時間をとってくると"PT1S"という文字列が得られました
これらの文字列を数値型にするにはどうすればいいでしょうか?
回答2件
あなたの回答
tips
プレビュー