From 80133c49214f26c0fcde2b19bc3de1c69752baa5 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 4 Sep 2022 21:31:51 +0900 Subject: [PATCH 1/3] =?UTF-8?q?TVer=E3=81=AEAPI=E5=88=A9=E7=94=A8=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6=E3=81=AE=E8=A8=98?= =?UTF-8?q?=E4=BA=8B=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...how-to-use-tver-api-to-list-up-programs.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 content/posts/2022/2022-09-04-how-to-use-tver-api-to-list-up-programs.md 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/)で公開されている番組をさくっとダウンロードできる仕組み作りできるのでは。。 From 001ac1136ccf77b917b94810478c5ed70687fbbf Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 4 Sep 2022 21:39:20 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E3=83=A1=E3=82=BF=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-09-04-how-to-use-tver-api-to-list-up-programs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 index 2361455..cda997d 100644 --- 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 @@ -1,11 +1,11 @@ +++ title = "TVerのAPIを利用してダウンロードできる番組を取得する" date = 2022-09-04T21:27:43+09:00 -description = "nomadのCSIストレージを利用してみましたよ。democratic-csiでSynology NASを利用します" -tags = ["nomad"] -categories = ["インフラ", "HashiCorp"] +description = "非公開のTVer APIを利用して公開されている番組リストを取得する方法をまとめてみました" +tags = ["tver"] +categories = ["プログラミング"] author = "kazu634" -images = ["ogp/2022-01-09-using-democratic-csi-for-nomad.webp"] +images = ["ogp/2022-09-04-how-to-use-tver-api-to-list-up-programs.webp"] +++ [TVerの新着番組をRSSで見る – 阿Qさんと一緒](https://blog.srytk.com/aquei/763.html)を参考に粛々と`curl`で動作するか試してみました。これを利用すると、公開されている番組を1000件取得するみたいです。基本的には公開されていない方法のようなので、これを使ってマッシュアップサイトを作ったりするのはNGに見えます。。 From 77d6cd5b46a7d8617fc9a93a23dd254b05dc0d87 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 4 Sep 2022 21:41:26 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A8=98=E4=BA=8B=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 番組情報取得方法の説明を詳細に - 検索キーワードの指定方法にも言及する --- .../2022-09-04-how-to-use-tver-api-to-list-up-programs.md | 7 +++++++ 1 file changed, 7 insertions(+) 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 index cda997d..90a03ca 100644 --- 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 @@ -53,6 +53,11 @@ images = ["ogp/2022-09-04-how-to-use-tver-api-to-list-up-programs.webp"] ``` ## 番組情報を取得する +一つ前で取得した以下の情報を利用します: + +- `platform_uid` +- `platform_token` + こんなコマンドを実行するといいです: ```shell @@ -114,5 +119,7 @@ images = ["ogp/2022-09-04-how-to-use-tver-api-to-list-up-programs.webp"] } ``` +具体的な検索キーワードがある場合には、「&keyword=ワンピース」みたいな形でURLに追加してあげるとOKのようです。 + ## 最後に これと[yt-dlp: A youtube-dl fork with additional features and fixes](https://github.com/yt-dlp/yt-dlp)を組み合わせると、[TVer \- 無料で動画見放題](https://tver.jp/)で公開されている番組をさくっとダウンロードできる仕組み作りできるのでは。。