Reddit json api 在通过浏览器和 nodejs 请求访问时表现不同

Reddit json api behaves differently when access it through a browser and nodejs request

我正在尝试访问 post 的 secure_media 属性 以下载 v.redd.it 媒体。

例如:当我尝试从浏览器访问此 link 时,响应中的 secure_media 属性 不为空,但是当我通过 nodejs 请求获取它时secure_media 为空

这里的问题是您处理的是交叉post 提交,而不是实际提交本身,它与正常提交的工作方式有点不同。

您可以从crosspost_parent_list属性中的第一项secure_media属性获取视频信息。这是您链接的 post 的 JSON 结构的一部分:

[
  {
    "kind": "Listing",
    "data": {
      "modhash": "yg3o3tzdc136d53e2919218e00ef74e8fc38d97b9a22f34b60",
      "dist": 1,
      "children": [
        {
          "kind": "t3",
          "data": {
            "secure_media": null,
            "is_reddit_media_domain": true,
            "is_meta": false,
            "category": null,
            "num_comments": 9,
            "secure_media_embed": {},
            "crosspost_parent_list": [
              {
                "secure_media": {
                  "reddit_video": {
                    "fallback_url": "https://v.redd.it/kh2kirut06731/DASH_1080?source=fallback",
                    "height": 1080,
                    "width": 608,
                    "scrubber_media_url": "https://v.redd.it/kh2kirut06731/DASH_96",
                    "dash_url": "https://v.redd.it/kh2kirut06731/DASHPlaylist.mpd",
                    "duration": 53,
                    "hls_url": "https://v.redd.it/kh2kirut06731/HLSPlaylist.m3u8",
                    "is_gif": true,
                    "transcoding_status": "completed"
                  }
                },
                "is_reddit_media_domain": true,
                "discussion_type": null,
                "mod_reports": [],
                "is_video": true
              }
            ],
            "created": 1561824841,
            "link_flair_type": "text",
            "wls": 6,
            "banned_by": null,