通过浏览器和Node.js请求访问Reddit JSON API时的行为有所不同

时间:2019-06-30 17:24:09

标签: node.js reddit

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

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

1 个答案:

答案 0 :(得分:1)

这里的问题是,您正在处理交叉提交,而不是实际提交本身,这与正常提交工作有些不同。

您可以从secure_media属性中第一项的crosspost_parent_list属性中获取视频信息。这是您链接的帖子的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,