lmc999 / RegionRestrictionCheck

A bash script to check the status of your IP on various geo-restricted services.
GNU Affero General Public License v3.0
3.95k stars 536 forks source link

Update & Fixes #123

Closed betaxab closed 3 months ago

betaxab commented 3 months ago

Paravi

现在账户业务什么的,已经合并到 U-NEXT 了,可以去除掉它减少检查量。

https://zh.wikipedia.org/zh-cn/Paravi

Tver:

创建ID:

curl 'https://platform-api.tver.jp/v2/api/platform_users/browser/create' \
  -H 'accept: */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'dnt: 1' \
  -H 'origin: https://s.tver.jp' \
  -H 'pragma: no-cache' \
  -H 'priority: u=1, i' \
  -H 'referer: https://s.tver.jp/' \
  -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-site' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' \
  --data-raw 'device_type=pc'

得到回复:

{
    "api_version": "v2",
    "code": 0,
    "message": "",
    "type": "hash",
    "result": {
        "platform_uid": "371a97a6b4754b4494c2212c5c2105ae3dca",
        "platform_ad_uuid": "b7ed1fc0-d3aa-4736-bcea-1ea5160a1bd2",
        "platform_token": "90wlo3rxe9lcu2jp63lj548iuzcwxgk4a435poi9",
        "browser_id": "wpuzg300cxsj2fg8ljjdz4llqde0h29o04h2",
        "device_type": "pc",
        "agreement_version": ""
    }
}

取得正在播放的剧集:

curl 'https://platform-api.tver.jp/service/api/v1/callHome?platform_uid=371a97a6b4754b4494c2212c5c2105ae3dca&platform_token=90wlo3rxe9lcu2jp63lj548iuzcwxgk4a435poi9&require_data=mylist%2Cresume%2Clater' \
  -H 'accept: */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'origin: https://tver.jp' \
  -H 'priority: u=1, i' \
  -H 'referer: https://tver.jp/' \
  -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-site' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' \
  -H 'x-tver-platform-type: web'

得到一个完整的播放列表,结果取电视剧第一个值:

ep88pp5gmv

取得该剧集回放信息:

curl 'https://statics.tver.jp/content/episode/ep88pp5gmv.json' \
  -H 'accept: */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'origin: https://tver.jp' \
  -H 'priority: u=1, i' \
  -H 'referer: https://tver.jp/' \
  -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-site' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'

得到 accountID = 4031511847001 得到 playerID = mdNymJtwL 得到 videoID = 得到 videoRefID = 25092_2062332_1000074570

如果剧没有 videoRefID,则需要根据 videoID ,借助 brightcove 的另一个 API 取得回放。

curl 'https://players.brightcove.net/4031511847001/mdNymJtwL_default/index.min.js' \
  -H 'Accept: */*' \
  -H 'Accept-Language: zh-CN,zh;q=0.9' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'DNT: 1' \
  -H 'Pragma: no-cache' \
  -H 'Referer: https://tver.jp/' \
  -H 'Sec-Fetch-Dest: script' \
  -H 'Sec-Fetch-Mode: no-cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' \
  -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"'

如果得不到 videoRefID,则需要得到 deliveryConfigId。

结果取 policy_key:

BCpkADawqM2N0e6IdrmQn-kEZJ0jRi-Dlm0aUZ9mVF2lcadunJzMVYD6j_51UZzQ3mXuIeV8Zx_UUvbGeeJn73SSrpm0xD7qtiKULPP2NEsp_rgKoVxVWTNZAHN-JAHcuIpFJT7PvUj6gpZv

最后得结果(有 videoRefID 的剧):

curl 'https://edge.api.brightcove.com/playback/v1/accounts/4031511847001/videos/ref%3A25092_2062332_1000074570' \
  -H 'accept: application/json;pk=BCpkADawqM2N0e6IdrmQn-kEZJ0jRi-Dlm0aUZ9mVF2lcadunJzMVYD6j_51UZzQ3mXuIeV8Zx_UUvbGeeJn73SSrpm0xD7qtiKULPP2NEsp_rgKoVxVWTNZAHN-JAHcuIpFJT7PvUj6gpZv' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'origin: https://tver.jp' \
  -H 'priority: u=1, i' \
  -H 'referer: https://tver.jp/' \
  -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: cross-site' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'

成功结果输出:

{
    "thumbnail": "https://cf-images.ap-northeast-1.prod.boltdns.net/v1/static/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/d68606fa-475b-4d44-aa94-8cdce054c479/160x90/match/image.jpg",
    "thumbnail_sources": [
        {
            "src": "https://cf-images.ap-northeast-1.prod.boltdns.net/v1/static/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/d68606fa-475b-4d44-aa94-8cdce054c479/160x90/match/image.jpg"
        }
    ],
    "description": "花咲舞(今田美桜)と相馬健(山本耕史)の次なる臨店先は、山間の静かな温泉地にある眠山支店。老舗旅館の社長から、融資がおりずに困っていると相談を受けた二人は、支店長が納得する事業計画書を作成するために奔",
    "tags": [],
    "cue_points": [],
    "custom_fields": {
        "content_id": "3a8129ce1d5e4478a5eab4f6dee556ff",
        "guid": "3a8129ce1d5e4478a5eab4f6dee556ff",
        "programkey": "hanasakimai2024"
    },
    "account_id": "4394098882001",
    "sources": [
        {
            "codecs": "avc1,mp4a",
            "ext_x_version": "3",
            "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v3/aes128/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/10s/master.m3u8?fastly_token=NjY2NDY1M2RfMTFjYjlmNmY2OGEzZDkyMDQ3N2VkMjQwNjFiYWRlMmMwNmUwYzJiNzFjNjg3ZDI4YjNkODM1NGJjZDA5OTU2Mg%3D%3D",
            "type": "application/x-mpegURL"
        },
        {
            "codecs": "avc1,mp4a",
            "ext_x_version": "4",
            "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/aes128/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/10s/master.m3u8?fastly_token=NjY2NDY1M2RfY2Q3ZjJkM2UzNmRiMDNmYzIxOGU0YWRlNDI3ZTkzNGI1NGQzNDAzNmE4MWM3NGNiZmMzNWY5MTI1YTc1ZmM5ZQ%3D%3D",
            "type": "application/x-mpegURL"
        },
        {
            "codecs": "avc1,mp4a",
            "ext_x_version": "5",
            "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v5/aes128/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/10s/master.m3u8?fastly_token=NjY2NDY1M2RfZGE2YjY1NzJhNDk2MTUyMTc0MDlmMDNkNzMzYjY3YWVmOTJhM2FkZmJlMmMwODEzODI1YWY3Yzk1NmIwNGEzNA%3D%3D",
            "type": "application/x-mpegURL"
        },
        {
            "codecs": "avc1,mp4a",
            "profiles": "urn:mpeg:dash:profile:isoff-live:2011",
            "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/2s/manifest.mpd?fastly_token=NjY2NDY1M2RfZWMwYzlhMjUzNTZhOWMwZTBiMDVlOGE0Y2UyMTdiZmU0OWZlMDc4NWIyZGIzNTZmMWI4MTNhOTVmODEwNjM2ZA%3D%3D",
            "type": "application/dash+xml"
        }
    ],
    "name": "花咲舞が黙ってない 5月11日(土)放送分 第5話 湯けむりの攻防!?",
    "reference_id": "3a8129ce1d5e4478a5eab4f6dee556ff",
    "long_description": null,
    "duration": 2698176,
    "economics": "AD_SUPPORTED",
    "text_tracks": [
        {
            "id": null,
            "account_id": "4394098882001",
            "src": "https://manifest.prod.boltdns.net/thumbnail/v1/4394098882001/bcaceb3d-e864-48a7-b85c-c5319d726272/6d6b2f54-ae9b-4a9a-9480-9ad8aba6d24b/thumbnail.webvtt?fastly_token=NjY2NDY1M2RfNzE4N2IxMDVkNWMxZGJlYWEyODNkY2FmNGVjZjEzMWY1NTQ0MGE5OWFmOTFmZGE1Y2EwMzEyZTE0MmI5ZDE0MQ%3D%3D",
            "srclang": null,
            "label": "thumbnails",
            "kind": "metadata",
            "mime_type": "text/webvtt",
            "asset_id": null,
            "sources": null,
            "default": false,
            "width": 480,
            "height": 270,
            "bandwidth": 243
        }
    ],
    "published_at": "2024-05-11T06:46:27.187Z",
    "created_at": "2024-05-11T06:46:27.194Z",
    "updated_at": "2024-05-11T07:42:52.194Z",
    "offline_enabled": false,
    "link": null,
    "id": "6352726465112",
    "ad_keys": null
}

拦截输出:

[{"client_geo": "hk", "error_subcode": "CLIENT_GEO", "error_code": "ACCESS_DENIED", "message": "Access to this resource is forbidden by access policy."}]

wowow 测试结果输出:

成功结果:

{
    "media": {
        "media_id": 116616,
        "uuid": "acb928a8-4bd4-4c46-a537-34c5c02f7477",
        "name": "159009_1:\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb \u300c\u7b2c\uff11\u8a71\u300d",
        "ovp_id": 1,
        "ovp_video_id": "20521dd42a224c83b06268163ae7ee4c",
        "description": "\u4eba\u6c17\u6f2b\u753b\u5bb6\u3086\u3046\u304d\u307e\u3055\u307f\u306e\u30d2\u30c3\u30c8\u4f5c\u3092\uff37\uff25\uff33\uff34\uff0e\u306e\u795e\u5c71\u667a\u6d0b\u4e3b\u6f14\u3067\u6620\u50cf\u5316\uff01\u30aa\u30ad\u30ca\u30ac\u3068\u547c\u3070\u308c\u308b\u4e0d\u8001\u4e0d\u6b7b\u306e\u5b58\u5728\u3092\u5de1\u308b\u3001\u6975\u4e0a\u306e\u30df\u30b9\u30c6\u30ea\u30fc\u30a8\u30f3\u30bf\u30fc\u30c6\u30a4\u30f3\u30e1\u30f3\u30c8\uff01",
        "copyright": null,
        "thumbnail_image_url": null,
        "thumbnail_gif_url": null,
        "thumbnail_tile_urls": null,
        "publish_start_at": "2024/03/14 17:09:25",
        "publish_end_at": null,
        "publish_status": 4,
        "delivery_start_at": null,
        "delivery_end_at": null,
        "drm_type": 0,
        "allow_direct_access_flg": true,
        "authenticate_flag": false,
        "encode_type": 1,
        "values": {
            "file_id": "L2401787",
            "notice_id": 8482,
            "content_id": "159009",
            "sound_code": "1",
            "rating_code": null,
            "video_skips": null,
            "material_url": null,
            "picture_code": "5",
            "tech_checked": true,
            "carry_in_code": 1,
            "file_uploaded": true,
            "language_code": "5",
            "material_code": "P19011000101",
            "output_result": false,
            "priority_type": "1",
            "angle_position": 0,
            "material_title": "\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb",
            "operation_checked": true,
            "file_ingest_status": 8,
            "sound_capture_code": "1",
            "opening_end_position": 0,
            "ending_start_position": 0,
            "preview_complete_date": "2024-03-18T00:00:00+09:00",
            "live_channel_create_flag": false,
            "file_ingest_encode_error_message": ""
        },
        "thumbnail_url": null,
        "thumbnail_copyright": null
    },
    "playback_rule": {
        "playback_rule_id": null,
        "enable_seek_flag": true,
        "enable_chromecast_flag": true,
        "enable_airplay_flag": true,
        "enable_mirroring_flag": true,
        "enable_external_monitor_flag": true,
        "enable_catchup_flag": true,
        "enable_start_over_flag": true,
        "enable_pause_flag": true,
        "enable_background_play_flag": true,
        "enable_screen_capture_flag": true,
        "enable_playback_rate_change_flag": true,
        "enable_offline_play_flag": true,
        "maximum_bitrate": 0,
        "minimum_bitrate": 0,
        "device_rule": null,
        "enable_drm_rule": null,
        "required_hdcp_level": "1.0",
        "interval_to_reauth": null,
        "enable_pip_flag": true
    },
    "playback_session_id": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDA3NTUzNDAsImlhdCI6MTcxNTU3NTA3MCwiaXNfZ3JvdXAiOjAsIm1heCI6MCwibWV0YV9tYXgiOjAsIm1pZCI6MTIzMDczLCJuYmYiOjE3MTU1NzUwNjUsInBzZ2siOiJkZWZhdWx0IiwicHNpZCI6IjE4NThlMTI5NmNhOTRhZWViZjdlZWJmM2EzYTFjOGNiIiwicmlkIjowLCJzdWIiOiIiLCJ0ZCI6bnVsbCwidXVpZCI6IiIsInZkZ2lkIjoiZGVmYXVsdCIsInZkaWQiOiIifQ.57GIcX90tgUrgW2KvuLGpnAL91m3jKEBNenEeWZf6m7WCNpSJivF4WhOrGSdCQZClHuVTX8OxjMS_-OgyG27lA",
    "playback_validity_end_at": "2025/02/28 23:59:00",
    "tracking": true,
    "log_params": {
        "media_id": 116616,
        "meta_id": 123073,
        "psgk": "default",
        "url": "",
        "cp": 1,
        "dc": 1,
        "a": 1,
        "vuid": "20d6ac7daa9170a1d762ca49cd46f835",
        "fl": 0,
        "psid": "1858e1296ca94aeebf7eebf3a3a1c8cb"
    }
}

失败,检测到 VPN 结果:

{
    "error": {
        "message": "Unsupported network detected. cannot be accessed from outside Japan and/or connection via VPN and Proxy.",
        "code": 2055,
        "type": "Forbidden",
        "objects": {
            "meta": {
                "id": 123073,
                "name": "\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb 1 \u300c\u7b2c\uff11\u8a71\u300d",
                "header": "",
                "description": "\u4eba\u6c17\u6f2b\u753b\u5bb6\u3086\u3046\u304d\u307e\u3055\u307f\u306e\u30d2\u30c3\u30c8\u4f5c\u3092\uff37\uff25\uff33\uff34\uff0e\u306e\u795e\u5c71\u667a\u6d0b\u4e3b\u6f14\u3067\u6620\u50cf\u5316\uff01\u30aa\u30ad\u30ca\u30ac\u3068\u547c\u3070\u308c\u308b\u4e0d\u8001\u4e0d\u6b7b\u306e\u5b58\u5728\u3092\u5de1 \u308b\u3001\u6975\u4e0a\u306e\u30df\u30b9\u30c6\u30ea\u30fc\u30a8\u30f3\u30bf\u30fc\u30c6\u30a4\u30f3\u30e1\u30f3\u30c8\uff01",
                "thumbnail_id": 83817,
                "meta_schema_id": 3,
                "values": {
                    "material_title": "\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb",
                    "title": "\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb",
                    "short_name": "\u300c\u7b2c\uff11\u8a71\u300d",
                    "episode_id_name": "1",
                    "detail_description": "\u539a\u751f\u52b4\u50cd\u7701\u306e \u65b0\u7c73\u8077\u54e1\u30fb\u4f0f\u6728\u3042\u304b\u308a\uff08\u677e\u4e95\u611b\u8389\uff09\u306f\u3001\u7acb\u3061\u5165\u308a\u691c\u67fb\u5148\u3067\u602a\u6b7b\u4e8b\u4ef6\u306b\u906d\u9047\u3059\u308b\u3002\u88ab\u5bb3\u8005\u306f\u4e0d\u8001\u4e0d\u6b7b\u306e\u5b58\u5728\u300c\u30aa\u30ad\u30ca\u30ac\u300d\u2500\u3002\u305d\u3053\u3067\u53c2\u4e8b \u5b98\u306e\u7af9\u4e4b\u5185\uff08\u7af9\u8ca1\u8f1d\u4e4b\u52a9\uff09\u306e\u76ee\u306b\u7559\u307e\u3063\u305f\u3042\u304b\u308a\u306f\u30aa\u30ad\u30ca\u30ac\u3092\u7ba1\u7406\u3059\u308b\u300c\u591c\u9593\u885b\u751f\u7ba1\u7406\u8ab2\u300d\u306b\u7570\u52d5\u3055\u305b\u3089\u308c\u308b\u3053\u3068\u306b\u3002\u4e0a\u53f8\u306e\u4e45\u4fdd\u5712\uff08\u5149\u77f3\u7814\uff09\u306b\u9023\u308c\u3089\u308c\u3001\u3042\u304b\u308a\u304c\u5411\u304b\u3063\u305f\u5148\u306f\u3001\u79c1\u8a2d\u56f3\u66f8\u9928\u300c\u6309\u5bdf\u4f7f\u6587\u5eab\u300d\u3002\u305d\u3053\u3067\u51fa\u4f1a\u3063\u305f\u9752\u5e74\u30fb\u96ea\u6751\u9b41\uff08\u795e\u5c71\u667a\u6d0b\uff09\u3082\u307e\u305f\u300c\u30aa\u30ad\u30ca\u30ac\u300d\u3060\u3063\u305f\u2500\u2500\u3002",
                    "wp_enable_flag": false,
                    "wp_do_flag": false,
                    "communication_area": null,
                    "links": null,
                    "is_multi": false,
                    "badge_statuses": [
                        5
                    ],
                    "badge_text": null,
                    "system_genres": [
                        12
                    ],
                    "soon_to_end_time": "2025/02/25 23:59:00",
                    "download_flag": true,
                    "duration_sec": 1500.053,
                    "related_key": null,
                    "tvod_flag": false,
                    "svod_flag": true,
                    "sv_type": 0,
                    "sv_main": null,
                    "sv_hilight": null,
                    "live_ol_image": null,
                    "live_ol_position": 0,
                    "info_visibility": "non_entitled",
                    "info_type": "snippet",
                    "info_iframe_url": null,
                    "info_snippet": 109,
                    "next_content_text": null,
                    "prev_content_text": null,
                    "program_code": "190110",
                    "episode_id": "001",
                    "material_branch_num": "01",
                    "title_read": "\uff8a\uff78\uff8e\uff9e\uff89\uff78\uff9b\uff86\uff78\uff99",
                    "episode_number_title": null,
                    "short_name_read": "\uff80\uff9e\uff72\uff72\uff81\uff9c",
                    "material_title_read": "\uff8a\uff78\uff8e\uff9e\uff89\uff78\uff9b\uff86\uff78\uff99",
                    "produced_start_year": 0,
                    "sound_capture_code": "1",
                    "rating_code": null,
                    "picture_codes": [
                        "5"
                    ],
                    "sound_codes": [
                        "1"
                    ],
                    "language_codes": [
                        "5"
                    ],
                    "broadcast_status": "1",
                    "streaming_status": 1,
                    "playback_restriction_type": 0,
                    "mentions": [],
                    "introduction": "",
                    "award": null,
                    "omnibus_info": [
                        {
                            "casts": [
                                {
                                    "id": "1206227",
                                    "display_order": "1",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u795e\u5c71\u667a\u6d0b\uff08WEST.\uff09"
                                },
                                {
                                    "id": "1206228",
                                    "display_order": "2",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u677e\u4e95\u611b\u8389"
                                },
                                {
                                    "id": "1206229",
                                    "display_order": "3",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u7af9\u8ca1\u8f1d\u4e4b\u52a9"
                                },
                                {
                                    "id": "1206230",
                                    "display_order": "4",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u9ad8\u6a4b\u52aa"
                                },
                                {
                                    "id": "1206231",
                                    "display_order": "5",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u685c\u5ead\u306a\u306a\u307f"
                                },
                                {
                                    "id": "1206232",
                                    "display_order": "6",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u6c34\u9593\u30ed\u30f3"
                                },
                                {
                                    "id": "1206233",
                                    "display_order": "7",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u7530\u6751\u5065\u592a\u90ce"
                                },
                                {
                                    "id": "1207039",
                                    "display_order": "8",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u7247\u5c71\u53cb\u5e0c"
                                },
                                {
                                    "id": "1207040",
                                    "display_order": "9",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u539f\u7530\u4f73\u5948"
                                },
                                {
                                    "id": "1207041",
                                    "display_order": "10",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u5409\u6751\u754c\u4eba"
                                },
                                {
                                    "id": "1207042",
                                    "display_order": "11",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u5de5\u85e4\u9065"
                                },
                                {
                                    "id": "1207043",
                                    "display_order": "12",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u77e2\u67f4\u4fca\u535a"
                                },
                                {
                                    "id": "1207044",
                                    "display_order": "13",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u9727\u5cf6\u308c\u3044\u304b"
                                },
                                {
                                    "id": "1207045",
                                    "display_order": "14",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u5229\u91cd\u525b"
                                },
                                {
                                    "id": "1207046",
                                    "display_order": "15",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u6c34\u91ce\u4e45\u7f8e"
                                },
                                {
                                    "id": "1207047",
                                    "display_order": "16",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u5927\u6797\u9686\u4ecb"
                                },
                                {
                                    "id": "1207048",
                                    "display_order": "17",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u4f0a\u85e4\u6b69"
                                },
                                {
                                    "id": "1207049",
                                    "display_order": "18",
                                    "position_title": "\u51fa\u6f14",
                                    "cast_name": "\u5149\u77f3\u7814"
                                }
                            ],
                            "staffs": [
                                {
                                    "id": "457585",
                                    "display_order": "1",
                                    "position_title": "\u539f\u4f5c",
                                    "staff_name": "\u3086\u3046\u304d\u307e\u3055\u307f\u300c\u767d\u66ae\u306e\u30af\u30ed\u30cb\u30af\u30eb\u300d\uff08\u5c0f\u5b66\u9928\u300c\u30d3\u30c3\u30b0\u30b9\u30d4\u30ea\u30c3\u30c4\u30b3\u30df\u30c3\u30af\u30b9\u300d\u520a\uff09"
                                },
                                {
                                    "id": "457586",
                                    "display_order": "2",
                                    "position_title": "\u76e3\u7763",
                                    "staff_name": "\u4e2d\u5ddd\u548c\u535a"
                                },
                                {
                                    "id": "457587",
                                    "display_order": "3",
                                    "position_title": "\u76e3\u7763",
                                    "staff_name": "\u4f50\u3005\u6728\u8c6a"
                                },
                                {
                                    "id": "457588",
                                    "display_order": "4",
                                    "position_title": "\u811a\u672c",
                                    "staff_name": "\u5c0f\u5c71\u6b63\u592a"
                                },
                                {
                                    "id": "457589",
                                    "display_order": "5",
                                    "position_title": "\u811a\u672c",
                                    "staff_name": "\u5c71\u5d0e\u592a\u57fa"
                                },
                                {
                                    "id": "457590",
                                    "display_order": "6",
                                    "position_title": "\u811a\u672c",
                                    "staff_name": "\u7530\u4e2d\u3057\u304a\u308a"
                                },
                                {
                                    "id": "457591",
                                    "display_order": "7",
                                    "position_title": "\u97f3\u697d",
                                    "staff_name": "\u5bcc\u8cb4\u6674\u7f8e"
                                },
                                {
                                    "id": "457592",
                                    "display_order": "8",
                                    "position_title": "\u4e3b\u984c\u6b4c",
                                    "staff_name": "\u300cFATE\u300dWEST.\uff08ELOV-Label\uff09"
                                },
                                {
                                    "id": "457593",
                                    "display_order": "9",
                                    "position_title": "\u30d7\u30ed\u30c7\u30e5\u30fc\u30b5\u30fc",
                                    "staff_name": "\u9ad8\u6c5f\u6d32\u7fa9\u8cb4"
                                },
                                {
                                    "id": "457594",
                                    "display_order": "10",
                                    "position_title": "\u30d7\u30ed\u30c7\u30e5\u30fc\u30b5\u30fc",
                                    "staff_name": "\u5ee3\u702c\u771e\u5b50"
                                },
                                {
                                    "id": "457595",
                                    "display_order": "11",
                                    "position_title": "\u30d7\u30ed\u30c7\u30e5\u30fc\u30b5\u30fc",
                                    "staff_name": "\u7686\u85e4\u4e00"
                                },
                                {
                                    "id": "457596",
                                    "display_order": "12",
                                    "position_title": "\u30d7\u30ed\u30c7\u30e5\u30fc\u30b5\u30fc",
                                    "staff_name": "\u6b4c\u8c37\u5eb7\u7950"
                                },
                                {
                                    "id": "458496",
                                    "display_order": "13",
                                    "position_title": "\u5236\u4f5c\u5354\u529b",
                                    "staff_name": "\u5171\u540c\u30c6\u30ec\u30d3\u30b8\u30e7\u30f3"
                                }
                            ]
                        }
                    ],
                    "casts": [
                        69315,
                        17102,
                        12615,
                        3252,
                        15575,
                        15281,
                        21395,
                        4285,
                        29924,
                        9788,
                        15577,
                        27598,
                        5996,
                        3628,
                        17340,
                        69316,
                        10489,
                        815
                    ],
                    "staffs": [
                        69317,
                        15582,
                        69318,
                        15018,
                        69319,
                        69320,
                        3587,
                        70123,
                        5258,
                        3638,
                        69321,
                        69322,
                        3620
                    ],
                    "musics": null,
                    "match_cards": null,
                    "recording_date": null,
                    "artwork_logokey": null,
                    "artwork_key": null,
                    "artwork_keyb": null,
                    "artwork_keyc": null,
                    "artwork_mh": null,
                    "artwork_mmh": null,
                    "artwork_epi": null,
                    "artwork_pos": null,
                    "artwork_square": null,
                    "oap": null,
                    "chasing_playback": null,
                    "cut_out_delivery": null,
                    "program_type": "",
                    "league": null,
                    "event_season_name": null,
                    "special_program_type": null,
                    "event_stage": "",
                    "event_match_day": null,
                    "event_reg": null,
                    "home_team": null,
                    "away_team": null,
                    "teams": [],
                    "country": null,
                    "jp_players": null,
                    "jp_player_flag": false,
                    "star_players": null,
                    "star_player_flag": false,
                    "good_matchup_flag": [
                        false
                    ],
                    "good_matchup_reason": "",
                    "live_hours": "",
                    "live_weekday": "",
                    "display_target_flag": false,
                    "rtoaster_session_id": null,
                    "live_archive_flag": false,
                    "broadcast_start_at": null,
                    "broadcast_end_at": null,
                    "production_country_info": {},
                    "recording_place_info": {}
                },
                "publish_device_rule": null,
                "publish_status": 4,
                "delivery_start_at": "2024/02/23 12:00:00",
                "delivery_end_at": "2025/02/28 23:59:00",
                "publish_start_at": "2024/02/23 12:00:00",
                "publish_end_at": "2025/02/28 23:59:00",
                "created_at": "2024/01/01 08:15:30",
                "updated_at": "2024/05/13 01:34:56",
                "deleted_at": null,
                "type": "media_meta",
                "access_control": {
                    "ip": []
                },
                "publish_geo_rule": null,
                "special_rule": null,
                "push_rank": 0,
                "sort": 1001,
                "import_unique_key": "190110_001_01",
                "rights_control_type": 10,
                "ref_id": "C159009",
                "name_ruby": "\uff80\uff9e\uff72\uff72\uff81\uff9c",
                "search_flag": true,
                "enable_inuse_viewing_device_limit": true,
                "publish_app_rule": null,
                "delivery_device_rule": null,
                "delivery_geo_rule": [
                    "jp"
                ],
                "delivery_app_rule": null,
                "refuse_anonymous_ip_flag": true,
                "keywords": "",
                "contents_provider_id": 1,
                "next_meta_id": 123283,
                "deleted_at_ts": 0,
                "require_viewing_device_regist_flag": true,
                "slug": null,
                "publish_on_limited_rule": null,
                "workflow_status": 2,
                "reviewer_id": null,
                "review_comment": null,
                "uuid": "ba987dc0-9341-4a24-85fa-6263fdd34534",
                "version_id": 120033,
                "admin_tags": "",
                "publish_user_status_rule": null,
                "first_imported_at": null,
                "last_imported_at": null,
                "id_in_schema": 159009,
                "translations": {},
                "search_start_at": null,
                "search_end_at": null,
                "created_by": 0,
                "updated_by": 0,
                "deleted_by": null,
                "target_min_age": null,
                "original_id": null,
                "service": "",
                "schema_id": 3,
                "related_roles": null,
                "related_roles_type": 0,
                "daily_play_count": 739,
                "weekly_play_count": 5138,
                "monthly_play_count": 16452,
                "daily_user_count": 537,
                "weekly_user_count": 3685,
                "monthly_user_count": 11630,
                "next_manual_meta_id": null,
                "deep_link_id": null,
                "contents_provider": {
                    "id": 1,
                    "key": "10001",
                    "name": "WOD\u6a19\u6e96CP",
                    "mail_address": null,
                    "ref_id": "10001",
                    "created_at": "2022/04/15 20:31:07",
                    "updated_at": "2022/04/15 20:31:07",
                    "deleted_at": null,
                    "schema_id": 1,
                    "values": null,
                    "deleted_at_ts": 0,
                    "slug": null,
                    "admin_tags": "",
                    "id_in_schema": null,
                    "created_by": 0,
                    "updated_by": null,
                    "deleted_by": null
                },
                "right_metas": [
                    {
                        "id": 750469,
                        "right_id": 3,
                        "meta_id": 123073,
                        "created_at": "2024/01/01 08:15:38",
                        "updated_at": "2024/01/01 08:15:38",
                        "deleted_at": null,
                        "sort_number": 0,
                        "strict_validity_start_at": null,
                        "strict_validity_end_at": null,
                        "validity_start_at": null,
                        "validity_end_at": null,
                        "ref_id": null,
                        "publish_start_at": null,
                        "publish_end_at": null,
                        "original_right_meta_id": null,
                        "deleted_at_ts": 0,
                        "created_by": 0,
                        "updated_by": 0,
                        "deleted_by": null,
                        "bubbled_right_meta_id": null,
                        "values": null,
                        "schema_id": null,
                        "auto_sync_flag": false,
                        "right": {
                            "id": 3,
                            "name": "WOWOW \u30aa\u30f3\u30c7\u30de\u30f3\u30c9 \u653e\u9001\u8996\u8074\u767b\u9332\u3042\u308a",
                            "view_term": null,
                            "view_limit_date": null,
                            "created_at": "2022/04/15 20:31:05",
                            "updated_at": "2022/04/15 20:31:05",
                            "deleted_at": null,
                            "execute_device_rule": null,
                            "execute_geo_rule": null,
                            "values": null,
                            "import_unique_key": null,
                            "ref_id": "wod_broadcast",
                            "validity_start_at": null,
                            "validity_end_at": null,
                            "kind": 0,
                            "review_flag": false,
                            "execute_app_rule": null,
                            "schema_id": null,
                            "persistent_flag": false,
                            "deleted_at_ts": 0,
                            "admin_tags": "",
                            "first_imported_at": null,
                            "last_imported_at": null,
                            "translations": null,
                            "id_in_schema": null,
                            "created_by": 0,
                            "updated_by": null,
                            "deleted_by": null,
                            "allow_delay_start_flag": null,
                            "exercise_term": null,
                            "view_start_date": null,
                            "view_term_unit": null,
                            "exercise_term_unit": null,
                            "exercise_priority": 3,
                            "control_type": 30,
                            "tying_rules": null
                        }
                    },
                    {
                        "id": 750467,
                        "right_id": 2,
                        "meta_id": 123073,
                        "created_at": "2024/01/01 08:15:37",
                        "updated_at": "2024/01/01 08:15:37",
                        "deleted_at": null,
                        "sort_number": 0,
                        "strict_validity_start_at": null,
                        "strict_validity_end_at": null,
                        "validity_start_at": null,
                        "validity_end_at": null,
                        "ref_id": null,
                        "publish_start_at": null,
                        "publish_end_at": null,
                        "original_right_meta_id": null,
                        "deleted_at_ts": 0,
                        "created_by": 0,
                        "updated_by": 0,
                        "deleted_by": null,
                        "bubbled_right_meta_id": null,
                        "values": null,
                        "schema_id": null,
                        "auto_sync_flag": false,
                        "right": {
                            "id": 2,
                            "name": "WOWOW \u30aa\u30f3\u30c7\u30de\u30f3\u30c9  \u6709\u6599",
                            "view_term": null,
                            "view_limit_date": null,
                            "created_at": "2022/04/15 20:31:05",
                            "updated_at": "2022/04/15 20:31:05",
                            "deleted_at": null,
                            "execute_device_rule": null,
                            "execute_geo_rule": null,
                            "values": null,
                            "import_unique_key": null,
                            "ref_id": "wod_paid",
                            "validity_start_at": null,
                            "validity_end_at": null,
                            "kind": 0,
                            "review_flag": false,
                            "execute_app_rule": null,
                            "schema_id": null,
                            "persistent_flag": false,
                            "deleted_at_ts": 0,
                            "admin_tags": "",
                            "first_imported_at": null,
                            "last_imported_at": null,
                            "translations": null,
                            "id_in_schema": null,
                            "created_by": 0,
                            "updated_by": null,
                            "deleted_by": null,
                            "allow_delay_start_flag": null,
                            "exercise_term": null,
                            "view_start_date": null,
                            "view_term_unit": null,
                            "exercise_term_unit": null,
                            "exercise_priority": 2,
                            "control_type": 30,
                            "tying_rules": null
                        }
                    },
                    {
                        "id": 750465,
                        "right_id": 1,
                        "meta_id": 123073,
                        "created_at": "2024/01/01 08:15:35",
                        "updated_at": "2024/01/01 08:15:35",
                        "deleted_at": null,
                        "sort_number": 0,
                        "strict_validity_start_at": null,
                        "strict_validity_end_at": null,
                        "validity_start_at": null,
                        "validity_end_at": null,
                        "ref_id": null,
                        "publish_start_at": null,
                        "publish_end_at": null,
                        "original_right_meta_id": null,
                        "deleted_at_ts": 0,
                        "created_by": 0,
                        "updated_by": 0,
                        "deleted_by": null,
                        "bubbled_right_meta_id": null,
                        "values": null,
                        "schema_id": null,
                        "auto_sync_flag": false,
                        "right": {
                            "id": 1,
                            "name": "WOWOW \u30aa\u30f3\u30c7\u30de\u30f3\u30c9 \u30c8\u30e9\u30a4\u30a2\u30eb\u7121\u6599",
                            "view_term": null,
                            "view_limit_date": null,
                            "created_at": "2022/04/15 20:31:05",
                            "updated_at": "2022/04/15 20:31:05",
                            "deleted_at": null,
                            "execute_device_rule": null,
                            "execute_geo_rule": null,
                            "values": null,
                            "import_unique_key": null,
                            "ref_id": "wod_trial",
                            "validity_start_at": null,
                            "validity_end_at": null,
                            "kind": 0,
                            "review_flag": false,
                            "execute_app_rule": null,
                            "schema_id": null,
                            "persistent_flag": false,
                            "deleted_at_ts": 0,
                            "admin_tags": "",
                            "first_imported_at": null,
                            "last_imported_at": null,
                            "translations": null,
                            "id_in_schema": null,
                            "created_by": 0,
                            "updated_by": null,
                            "deleted_by": null,
                            "allow_delay_start_flag": null,
                            "exercise_term": null,
                            "view_start_date": null,
                            "view_term_unit": null,
                            "exercise_term_unit": null,
                            "exercise_priority": 1,
                            "control_type": 30,
                            "tying_rules": null
                        }
                    }
                ],
                "meta_terms": [],
                "meta_playback_rules": [],
                "meta_concurrent_playback_rules": [],
                "media_meta_medias": [
                    {
                        "id": 115867,
                        "meta_id": 123073,
                        "media_id": 116616,
                        "created_at": "2024/03/14 17:09:25",
                        "updated_at": "2024/03/14 17:09:25",
                        "sort_number": 1
                    },
                    {
                        "id": 110067,
                        "meta_id": 123073,
                        "media_id": 110728,
                        "created_at": "2024/01/01 08:15:45",
                        "updated_at": "2024/03/14 17:09:25",
                        "sort_number": 2
                    }
                ],
                "schema": {
                    "slug": "episode"
                },
                "thumbnail": {
                    "id": 83817,
                    "name": "C159009",
                    "caption": "",
                    "file": "09880fca-2f96-4efa-9efb-5a8902913733.jpg",
                    "copyright": "",
                    "info": {
                        "exif": {
                            "Copyright": "kumiko tsuchiya"
                        },
                        "size": 330063,
                        "type": "JPEG",
                        "width": 1920,
                        "height": 1080,
                        "mime_type": "image/jpeg",
                        "signature": "13d1bc9c7e01088f5656989d30b85da8e7edfec1aadadd7ed065883354f62e2d",
                        "colorspace": "DirectClass sRGB ",
                        "resolution": "72x72",
                        "aspect_ratio": "16:9"
                    },
                    "created_at": "2024/02/20 17:49:26",
                    "updated_at": "2024/02/20 17:49:26",
                    "import_unique_key": null,
                    "mime_type": "image/jpeg",
                    "file_store_dir": "uploads/attachment/file/83817",
                    "publish_start_at": "2024/02/20 00:00:00",
                    "publish_end_at": null,
                    "publish_status": 4,
                    "attachment_folder_id": null,
                    "type": "Logica::Attachment::Default",
                    "publish_on_limited_rule": null,
                    "workflow_status": 2,
                    "reviewer_id": null,
                    "review_comment": null,
                    "url": "https://image-proxy.wowow.co.jp/uploads/attachment/file/83817/09880fca-2f96-4efa-9efb-5a8902913733.jpg",
                    "admin_tags": "",
                    "first_imported_at": null,
                    "last_imported_at": null,
                    "created_by": 186,
                    "updated_by": null,
                    "memo": "",
                    "values": null
                },
                "AVAILABILITY_RESULT_REASON_CODES": {
                    "IS_FREE": 1,
                    "IS_MEMBER_ONLY": 2,
                    "NOTFOUND": 3,
                    "FORBIDDEN": 4,
                    "NOT_PUBLISHED": 5,
                    "NOT_DELIVERING": 6,
                    "IS_ENTITLED": 7,
                    "NOT_ENTITLED": 8,
                    "AUTH_REQUIRED": 9,
                    "ENTITLEMENT_SUSPEND": 10,
                    "ENTITLEMENT_SUSPEND_RECURRING_FAILED": 11,
                    "HAS_NO_RIGHTS": 12,
                    "OTHER": 999
                }
            },
            "userInfo": {}
        },
        "helperLink": "https://support.wowow.co.jp/answer/62bd39571e5eea9d5b3b5719",
        "helperLink_message": "\u8a73\u7d30\u306f\u3053\u3061\u3089"
    }
}