hitode909の日記

趣味はマリンスポーツですの日記です

ニコニコ動画のサムネイルのAPIの再生時間を正規化する

サムネイルのAPIに動画の再生時間が含まれているが,桁が分までしか増えない.例えば,63分のとき,01:03:00ではなくて,63:00になる.


この動画の,

APIを見ると,

<length>1092:15</length>

となっている.

def normalize_duration(l)
  (Time.gm(2000) + l.split(":").inject(0){|a,b|a*60+b.to_i}).strftime("%H:%M:%S").gsub(/^(0|:)*/, '')
end


これを使うと,

normalize_duration("1092:15") # => "18:12:15"

ちゃんと18時間になる.
Podcastのitemの要素であるitunes:durationは正規化された時間しか入れられないので,ニコニコ動画の検索結果とかをPodcastにしていて,フィードにitunes:durationを含めたいときは,これで桁を増やしておくと正しく扱える.