首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Youtube API :如何检索1000多条评论?

Youtube API :如何检索1000多条评论?
EN

Stack Overflow用户
提问于 2013-10-14 21:30:22
回答 1查看 2.9K关注 0票数 2

我正在尝试制作一个工具,可以从视频中获取所有评论,并检索所有发布评论的用户,从而使赠送变得更容易。

现在我正在使用Youtube API

gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments?v=2&alt=json&start-index=1

我只是做了一个简单的循环,每次增加开始索引(1,22,44,66等)。得到所有的评论

问题是,我现在在视频上有超过1000个评论,所以这是行不通的,例如: gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments?v=2&alt=json&start-index=1100

http://pastebin.com/ypLrFmTG

有没有办法让所有在Youtube视频上发表评论的用户?我花了几个小时来理解Youtube api是如何工作的,但是这个问题使整个事情变得毫无用处。

我是否应该使用curl或其他方式获取这些页面上的内容: youtube.com/all_comments?threaded=1&v=VIDEO_ID&page=x

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 03:37:14

有几种方法。第一个是你发布的链接。如果您查看了他们的javascript,然后将其拆分(或者仅仅是观察fiddler中的流量),它将访问其站点上的comments.php页面并传递页码。网址格式是:http://www.sandracires.com/en/client/youtube/comments.php?v=videoID&page=1。然而,我不确定这是否合法,所以我不建议这样做。

我在Youtube上使用了Fiddler,这是我想出的。

size=500&source=w

  • V= videoID
  • P=页码
  • 评论门槛=?
  • 评论型=注释类型(所有内容都是我所知道的唯一枚举值)
  • last_comment_id =注释就在要加载的内容之前
  • page_size =要返回的注释数量
  • 来源= ??(也许W代表网络)

您可能可以删除源参数和其他参数。

我不完全确定这些是否都是正确的。我认为p是页码,它允许您在不使用last_comment_id参数的情况下提取注释(它对我来说是这样的)。我还通过解析生成的last_comment_id并找到?lc=LASTCOMMENTIDHERE来使?lc=LASTCOMMENTIDHERE参数工作(其中p保持不变)。

,似乎一次最多有500个。是的,我尝试过501.,正如我已经注意到的,数据是以XML形式返回的。每个评论都是这样的:

代码语言:javascript
复制
<div class="content clearfix">
  <p class="metadata">
    <span class="author ">
      <a href="/user/mindmonkey00" class="g-hovercard yt-uix-sessionlink yt-user-name " data-sessionlink="ei=-LFcUvCPNsn-sAf7jIGgAg" dir="ltr" data-ytid="UCAufDxGRQh_LlF5tD6StNtw" data-name="">mindmonkey00</a>
    </span>
      <span class="time" dir="ltr">
        <a dir="ltr" href="http://www.youtube.com/comment?lc=teKFzQ8cbHNkP8a89kiIEtWqiTRiAkKtSnvEHB_hXG4">
          3 weeks ago
        </a>
      </span>
  </p>


  <div class="comment-text" dir="ltr">
    <p>You didn&#39;t answer my question?</p>

  </div>

  <div class="comment-actions">
    <button onclick=";return false;" type="button" class="start comment-action create-channel-lightbox yt-uix-button yt-uix-button-link yt-uix-button-size-default" data-upsell="comment" role="button"><span class="yt-uix-button-content">Reply </span></button>
    <span class="separator">&middot;</span>


    <span ><button title="Vote Up" onclick=";return false;" type="button" class="start comment-action-vote-up comment-action yt-uix-button yt-uix-button-link yt-uix-button-size-default yt-uix-button-has-icon yt-uix-tooltip yt-uix-button-empty" data-tooltip-show-delay="300" data-action="vote-up" role="button"><span class="yt-uix-button-icon-wrapper"><img class="yt-uix-button-icon yt-uix-button-icon-watch-comment-vote-up" src="//s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Vote Up" title=""></span></button></span><span ><button title="Vote Down" onclick=";return false;" type="button" class="end comment-action-vote-down comment-action yt-uix-button yt-uix-button-link yt-uix-button-size-default yt-uix-button-has-icon yt-uix-tooltip yt-uix-button-empty" data-tooltip-show-delay="300" data-action="vote-down" role="button"><span class="yt-uix-button-icon-wrapper"><img class="yt-uix-button-icon yt-uix-button-icon-watch-comment-vote-down" src="//s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Vote Down" title=""></span></button></span>
  </div>

</div>

请记住,通过试图绕过Youtube的API规则,您可能每隔一段时间就必须重新执行这个过程。他们可能会更改URL。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19369632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档