diff --git a/content/posts/2022/2022-09-04-how-to-use-tver-api-to-list-up-programs.md b/content/posts/2022/2022-09-04-how-to-use-tver-api-to-list-up-programs.md new file mode 100644 index 0000000..2361455 --- /dev/null +++ b/content/posts/2022/2022-09-04-how-to-use-tver-api-to-list-up-programs.md @@ -0,0 +1,118 @@ ++++ +title = "TVerのAPIを利用してダウンロードできる番組を取得する" +date = 2022-09-04T21:27:43+09:00 +description = "nomadのCSIストレージを利用してみましたよ。democratic-csiでSynology NASを利用します" +tags = ["nomad"] +categories = ["インフラ", "HashiCorp"] +author = "kazu634" +images = ["ogp/2022-01-09-using-democratic-csi-for-nomad.webp"] ++++ + +[TVerの新着番組をRSSで見る – 阿Qさんと一緒](https://blog.srytk.com/aquei/763.html)を参考に粛々と`curl`で動作するか試してみました。これを利用すると、公開されている番組を1000件取得するみたいです。基本的には公開されていない方法のようなので、これを使ってマッシュアップサイトを作ったりするのはNGに見えます。。 + + + +## トークン的なものを作成する +`https://platform-api.tver.jp/v2/api/platform_users/browser/create`にアクセスして、トークンを作成するようです: + +```shell +% curl -w '\n' 'https://platform-api.tver.jp/v2/api/platform_users/browser/create' --data 'device_type=pc' -XPOST | jq . +{ + "api_version": "v2", + "code": 0, + "message": "", + "type": "hash", + "result": { + "platform_uid": "59e4ad1c38fc463f8436304d412d3dc2262b", + "platform_ad_uuid": "a4f0f584-ecf0-4ae9-a546-2b812a16d81e", + "platform_token": "whfwp5uuj8h5fqfz4e3jymzfdb335150zkxezn7p", + "browser_id": "r0xclt0f4bfo2t6e7pfcey08277hhw6reap9", + "device_type": "pc", + "agreement_version": "" + } +} +``` + +返却されるのは、下の`json`形式のようです: + +```json +{ + "api_version": "v2", + "code": 0, + "message": "", + "type": "hash", + "result": { + "platform_uid": "59e4ad1c38fc463f8436304d412d3dc2262b", + "platform_ad_uuid": "a4f0f584-ecf0-4ae9-a546-2b812a16d81e", + "platform_token": "whfwp5uuj8h5fqfz4e3jymzfdb335150zkxezn7p", + "browser_id": "r0xclt0f4bfo2t6e7pfcey08277hhw6reap9", + "device_type": "pc", + "agreement_version": "" + } +} +``` + +## 番組情報を取得する +こんなコマンドを実行するといいです: + +```shell +% curl -w '\n' 'https://platform-api.tver.jp/service/api/v1/callSearch?platform_uid=59e4ad1c38fc463f8436304d412d3dc2262b&platform_token=whfwp5uuj8h5fqfz4e3jymzfdb335150zkxezn7p&require_data=later' -H 'x-tver-platform-type: web' | jq . +``` + +結果はこんな`json`で返ってきます: + +```json +{ + "type": "episode", + "content": { + "id": "epp7y4r9mc", + "version": 5, + "title": "【コント傑作選】初登場3組が参戦!後藤と濱家が慕う“ねえさん”なるみが厳しく後輩たちのネタをジャッジ!", + "endAt": 1662303540, + "broadcastDateLabel": "5月21日(土)放送分", + "isNHKContent": false, + "isSubtitle": false, + "ribbonID": 0, + "seriesTitle": "防犯カメラが捉えた!衝撃コント映像", + "isAvailable": true, + "broadcasterName": "ABCテレビ", + "productionProviderName": "ABCテレビ" + }, + "isLater": false, + "favoriteCount": 26081, + "endAt": 1662303540, + "tags": [ + { + "id": "abc", + "name": "ABCテレビ" + }, + { + "id": "exnetwork", + "name": "テレビ朝日系" + }, + { + "id": "owarai", + "name": "お笑い・漫才・コント" + }, + { + "id": "sat", + "name": "土" + }, + { + "id": "talk", + "name": "トーク・スタジオバラエティ" + }, + { + "id": "variety", + "name": "バラエティ" + }, + { + "id": "vtr", + "name": "VTR・ロケ番組" + } + ] +} +``` + +## 最後に +これと[yt-dlp: A youtube-dl fork with additional features and fixes](https://github.com/yt-dlp/yt-dlp)を組み合わせると、[TVer \- 無料で動画見放題](https://tver.jp/)で公開されている番組をさくっとダウンロードできる仕組み作りできるのでは。。