node.js - 抓取视频的youtube混合播放列表ID

标签 node.js iframe heroku youtube web-scraping

所以这是我要做的事情:

这个问题所涉及的应用程序在这里:https://github.com/viperfx/ng-juketube,为每个人提供一些上下文。因此,我正在使用youtube Iframe API在后台加载youtube视频,并为其提供了youtube视频ID。那很好。接下来,我想找出有时出现在侧边栏上的youtube混音的播放列表ID。

当前解决方案:
我在后端使用Node.js抓取youtube视频页面,然后在侧栏中查找字符串“Youtube Mix”。当我在本地运行服务器时,它运行良好。但是,当我从heroku运行该应用程序时,我没有得到相同的结果(因为没有显示混合),因为我假设我拥有的youtube服务器和IP地址正在影响youtube混合显示。

因此,我的问题是如何使用客户端(浏览器)而非服务器获取youtube混合播放列表ID?

我尝试过尝试将youtube页面作为iframe加载的操作-无法正常工作。仅适用于/ embed *的iframe

最佳答案

因此,这就是我解决此问题的方法。

使用名为http://www.corsproxy.com/的服务,我可以使用客户端代码抓取youtube并获取播放列表ID。这是我的代码片段,显示了解决方案:

        $.get('http://www.corsproxy.com/www.youtube.com/watch?v='+newVal.videoId,function(response) {
          var doc = new DOMParser().parseFromString(response, 'text/html');
          $scope.mixId = doc.querySelector('.related-playlist').getAttribute('href').split('list=')[1];
          $scope.$apply();
        });

关于node.js - 抓取视频的youtube混合播放列表ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407107/

相关文章:

java - 访问部署在 Heroku 上的应用程序

javascript - Next.js 公共(public)图像未在生产构建中显示

javascript - Node.js 作为 JSON 转发器

javascript - 如何使用 JavaScript 将 GeoJSON 保存到文件中

javascript - socket.send 在 io.sockets.on() 之外

css - 谷歌地图 iframe 类覆盖上面的文字并且不尊重维度

ruby-on-rails - 从 S3 获取文件,将它们放入 heroku/tmp 文件夹,解压缩并上传回 s3

javascript - 聚合函数中跳过计数 0

javascript - 页面加载时的随机 iframe

iframe - IE7跨域iFrame Select问题