草庐IT

php - 如何使用 javascript 获取和显示 youtube 视频列表

coder 2024-04-13 原文

我已经编写了一个 C 代码来获取 url 的 youtube 视频列表 “*http://gdata.youtube.com/feeds/api/standardfeeds/top_rated*”使用 libsoup 库。 我可以使用 libxml2 解析返回的 xml 数据并从中提取所需的字段。

我想知道如何使用 javascript 执行相同的操作并在浏览器上显示列表。我对 JavaScript 有非常基本的了解,但如果你们指出正确的方向,我愿意付出必要的努力。

我从 YouTube API 的谷歌帮助文档中了解到以下内容。

  1. 以所需格式向 url mention 发送 GET 请求。
  2. 响应将是 xml 或 json-c 格式,并且必须对其进行解析

我如何使用 javascript 实现这两者并使用 html/javascript 显示?示例代码或任何链接都会有很大帮助。

编辑:添加 php 标签以更好地了解问题,我认为 php 可以为问题提供提示。

TIA,

普瑞文 S

尝试下面给出的建议后进行编辑:

我该如何调试它? 它似乎没有显示我打算加入的视频的标题。

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>");
    $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?callback=function&alt=jsonc&v=2", function(data) {
        var dataContainer = $("#data ul");
        $.each(data.data.items, function(i, val) {
         $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>");
if (typeof(val.player) !== 'undefined' && typeof(val.title) !== 'undefined') {
dataContainer.append("<li><a href = "+val.player.default+" target = '_blank'>"+val.title+"</a></li>");
        }
        });
        });


  });
});
</script>
</head>

<body>
<h2>Header</h2>
<p>Paragrapgh</p>
<p>Paragraph.</p>
<button>Click me</button>
</body>
</html> 

最佳答案

好吧,我已经使用 jQuery(一种 javascript 框架)编写了一些基本的东西,它向该 url 发出 GET 请求,并以 jsonp 格式检索数据。然后解析关于每个条目的一些基本信息(标题和链接)并将其附加到一个 div 中的无序列表,其中 id 为 data,只要该条目的数据位不是未定义的。如果您将它粘贴在页面上加载了 jQuery 的脚本标记中并运行它,这将起作用。我不打算详细介绍它是如何工作的,因为你说过你愿意付出一些努力。但我会通过一些链接和基本解释帮助您入门。

这个例子利用了:

  1. 概念AJAX ,或异步 Javascript 和 XML。一组用于创建交互式 Web 应用程序的技术。在我们的示例中,特别是 XMLHttpRequest , jQuery 的 jQuery.ajax是一个包装器。 jQuery.getJSONjQuery.ajax 的包装器专门用于检索 JSON 或 JSONP 编码的数据。
  2. 概念JSON ,或 Javascript Object Notation,一种轻量级数据交换格式。您可以将其视为 XML 的简单替代品。
  3. 概念JSONP ,或带有填充的 JSON。 JSONP 不限于普通 AJAX 请求的同源策略。
  4. jQuery javascript framework ,一个优秀的 javascript 框架,用于 dom 操作和 ajax 请求,以及几乎所有其他有用的东西。
  5. jQuery.getJSON()来自 jQuery 的方法,用于检索 json 或 jsonp 数据,例如本例
  6. jQuery.each()来自 jQuery 的方法,可用于迭代任何通用集合,在本例中为 json。
  7. .append()来自 jQuery 的方法,用于将内容附加到 dom 元素。
  8. 概念jQuery Selectors ,它们实际上只是带有一些额外功能的 css 选择器。 jQuery 使用选择器来快速“选择”dom 元素以对其进行操作。

没有进一步的告别:

例子


     $("body").append("<div id = 'data'><ul></ul></div>");
     $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?callback=?&alt=jsonc&v=2", function(data) {
        var dataContainer = $("#data ul");
        $.each(data.data.items, function(i, val) {
            if (typeof(val.player) !== 'undefined' && typeof(val.title) !== 'undefined') {
                dataContainer.append("<li><a href = "+val.player.default+" target = '_blank'>"+val.title+"</a></li>");
        }
        });
    });

这应该足以让您“指向正确的方向”。如果您有任何问题,请发表评论,我会尽力回答。

关于php - 如何使用 javascript 获取和显示 youtube 视频列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4212105/

有关php - 如何使用 javascript 获取和显示 youtube 视频列表的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  4. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  5. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  6. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  10. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

随机推荐