YouTube Java API入门_dnc8371的博客

文章推薦指數: 80 %
投票人數:10人

在本教程中,我将介绍Google的YouTube API ,该API可让您使用YouTube的功能来启用应用程序。

YouTube是“杀手级”互联网应用程序之一,其流量占互联网总 ... YouTubeJavaAPI入门 dnc8371 于 2020-05-0520:23:03 发布 850 收藏 1 文章标签: java python mysql 大数据 vue ViewUI 在本教程中,我将介绍Google的YouTubeAPI,该API可让您使用YouTube的功能来启用应用程序。

YouTube是“杀手级”互联网应用程序之一,其流量占互联网总流量的很大一部分。

在开始之前,请确保您已阅读《API概述指南》。

我们将主要处理DataAPI,它使您可以执行YouTube网站上的许多操作(搜索视频,检索标准供稿,查看相关内容等)。

该API有多种编程语言,我们将在本教程中使用Java。

阅读JavaDeveloper'sGuide以获得第一个想法。

还要为GoogleDataAPIJavaDoc页面添加书签。

让我们准备开发环境。

首先,从相应的下载部分下载GDataJava客户端。

我将在本教程中使用1.41.2版本。

请注意,还有一个版本2,但根据站点的情况,它是实验性的,与版本1不兼容。

解压缩压缩文件,找到文件夹“gdata\java\lib”,并将以下JAR包含到应用程序的类路径中: 数据客户端1.0.jargdata-youtube-2.0.jargdata-core-1.0.jargdata-media-1.0.jar 接下来,我们必须照顾依赖性。

依赖包列表可以在这里找到。

包含JavaMailAPI以提供媒体支持。

可以在这里下载。

需要“mail.jar”。

GData客户端还在内部使用GoogleCollectionsLibrary。

我下载了1.0最终版本。

需要“google-collect-1.0.jar”。

确保上述所有JAR文件都包含在项目的类路径中。

请注意,所有公共提要都是只读的,不需要任何身份验证。

另一方面,已验证的操作是那些包括检索私人供稿(例如用户的收件箱供稿)以及写入,上载,更新和删除操作的操作。

您将需要注册开发人员密钥才能执行经过身份验证的操作。

但是,本教程不需要密钥。

现在基础架构已经准备就绪,让我们来谈谈API。

我们将使用的主要类是YouTubeService类。

这使您可以执行与浏览YouTube网页时类似的搜索查询。

每个查询均由YouTubeQuery实例表示。

每个查询的结果(如果有)以VideoFeed对象的形式出现。

从每个提要中,可以检索许多VideoEntry对象。

从VideoEntry中,我们提取一个YoutTubeMediaGroup对象。

您可以将此类想象为媒体信息的占位符(请参阅“MediaRSS”规范)。

然后,我们检索相应的MediaPlayer,最后检索播放器URL。

我们还可以通过MediaThumbnail类获取有关随附缩略图的信息。

让我们开始使用代码。

首先,我们创建两个模型类,这些类将用于保存有关提要和视频的信息。

第一个称为YouTubeMedia,它包含媒体内容URL和媒体内容类型。

第二个名为YouTubeVideo,其中包含有关特定视频的所有信息(URL,嵌入式播放器URL,缩略图和YoutTubeMedia实例)。

这些的源代码如下: packagecom.javacodegeeks.youtube.model; publicclassYouTubeMedia{ privateStringlocation; privateStringtype; publicYouTubeMedia(Stringlocation,Stringtype){ super(); this.location=location; this.type=type; } publicStringgetLocation(){ returnlocation; } publicvoidsetLocation(Stringlocation){ this.location=location; } publicStringgetType(){ returntype; } publicvoidsetType(Stringtype){ this.type=type; } } packagecom.javacodegeeks.youtube.model; importjava.util.List; publicclassYouTubeVideo{ privateListthumbnails; privateListmedias; privateStringwebPlayerUrl; privateStringembeddedWebPlayerUrl; publicListgetThumbnails(){ returnthumbnails; } publicvoidsetThumbnails(Listthumbnails){ this.thumbnails=thumbnails; } publicListgetMedias(){ returnmedias; } publicvoidsetMedias(Listmedias){ this.medias=medias; } publicStringgetWebPlayerUrl(){ returnwebPlayerUrl; } publicvoidsetWebPlayerUrl(StringwebPlayerUrl){ this.webPlayerUrl=webPlayerUrl; } publicStringgetEmbeddedWebPlayerUrl(){ returnembeddedWebPlayerUrl; } publicvoidsetEmbeddedWebPlayerUrl(StringembeddedWebPlayerUrl){ this.embeddedWebPlayerUrl=embeddedWebPlayerUrl; } publicStringretrieveHttpLocation(){ if(medias==null||medias.isEmpty()){ returnnull; } for(YouTubeMediamedia:medias){ Stringlocation=media.getLocation(); if(location.startsWith("http")){ returnlocation; } } returnnull; } } 最后,介绍了YouTubeManager类。

它可用于执行搜索查询,并返回YouTubeVideo模型类的实例以及所有相关信息。

它还会创建适当的嵌入式Web播放器URL。

这是该类的代码: packagecom.javacodegeeks.youtube; importjava.net.URL; importjava.util.LinkedList; importjava.util.List; importcom.google.gdata.client.youtube.YouTubeQuery; importcom.google.gdata.client.youtube.YouTubeService; importcom.google.gdata.data.media.mediarss.MediaThumbnail; importcom.google.gdata.data.youtube.VideoEntry; importcom.google.gdata.data.youtube.VideoFeed; importcom.google.gdata.data.youtube.YouTubeMediaContent; importcom.google.gdata.data.youtube.YouTubeMediaGroup; importcom.javacodegeeks.youtube.model.YouTubeMedia; importcom.javacodegeeks.youtube.model.YouTubeVideo; publicclassYouTubeManager{ privatestaticfinalStringYOUTUBE_URL="http://gdata.youtube.com/feeds/api/videos"; privatestaticfinalStringYOUTUBE_EMBEDDED_URL="http://www.youtube.com/v/"; privateStringclientID; publicYouTubeManager(StringclientID){ this.clientID=clientID; } publicListretrieveVideos(StringtextQuery,intmaxResults,booleanfilter,inttimeout)throwsException{ YouTubeServiceservice=newYouTubeService(clientID); service.setConnectTimeout(timeout);//millis YouTubeQueryquery=newYouTubeQuery(newURL(YOUTUBE_URL)); query.setOrderBy(YouTubeQuery.OrderBy.VIEW_COUNT); query.setFullTextQuery(textQuery); query.setSafeSearch(YouTubeQuery.SafeSearch.NONE); query.setMaxResults(maxResults); VideoFeedvideoFeed=service.query(query,VideoFeed.class); Listvideos=videoFeed.getEntries(); returnconvertVideos(videos); } privateListconvertVideos(Listvideos){ ListyoutubeVideosList=newLinkedList(); for(VideoEntryvideoEntry:videos){ YouTubeVideoytv=newYouTubeVideo(); YouTubeMediaGroupmediaGroup=videoEntry.getMediaGroup(); StringwebPlayerUrl=mediaGroup.getPlayer().getUrl(); ytv.setWebPlayerUrl(webPlayerUrl); Stringquery="?v="; intindex=webPlayerUrl.indexOf(query); StringembeddedWebPlayerUrl=webPlayerUrl.substring(index+query.length()); embeddedWebPlayerUrl=YOUTUBE_EMBEDDED_URL+embeddedWebPlayerUrl; ytv.setEmbeddedWebPlayerUrl(embeddedWebPlayerUrl); Listthumbnails=newLinkedList(); for(MediaThumbnailmediaThumbnail:mediaGroup.getThumbnails()){ thumbnails.add(mediaThumbnail.getUrl()); } ytv.setThumbnails(thumbnails); Listmedias=newLinkedList(); for(YouTubeMediaContentmediaContent:mediaGroup.getYouTubeContents()){ medias.add(newYouTubeMedia(mediaContent.getUrl(),mediaContent.getType())); } ytv.setMedias(medias); youtubeVideosList.add(ytv); } returnyoutubeVideosList; } } 为了测试我们的类,并提供一个示例案例,我们创建以下简单的测试类: packagecom.javacodegeeks.youtube.test; importjava.util.List; importcom.javacodegeeks.youtube.YouTubeManager; importcom.javacodegeeks.youtube.model.YouTubeVideo; publicclassYouTubeTester{ publicstaticvoidmain(String[]args)throwsException{ StringclientID="JavaCodeGeeks"; StringtextQuery="javacode"; intmaxResults=10; booleanfilter=true; inttimeout=2000; YouTubeManagerym=newYouTubeManager(clientID); Listvideos=ym.retrieveVideos(textQuery,maxResults,filter,timeout); for(YouTubeVideoyoutubeVideo:videos){ System.out.println(youtubeVideo.getWebPlayerUrl()); System.out.println("Thumbnails"); for(Stringthumbnail:youtubeVideo.getThumbnails()){ System.out.println("\t"+thumbnail); } System.out.println(youtubeVideo.getEmbeddedWebPlayerUrl()); System.out.println("************************************"); } } } 可以从此处下载本教程的Eclipse项目,包括依赖库。

请享用! 相关文章: GWT2Spring3JPA2Hibernate3.5教程SmartGWT入门,提供出色的GWT界面带有Spring和Maven教程的JAX–WS使用Spring使用Java发送电子邮件–GMailSMTP服务器示例Java教程和Android教程列表 翻译自:https://www.javacodegeeks.com/2010/05/getting-started-with-youtube-java-api.html dnc8371 关注 关注 0 点赞 踩 0 评论 1 收藏 扫一扫,分享内容 点击复制链接 YOUTUBEAPI调用JAVA qq_41561707的博客 04-22 359 文章目录 功能说明,依赖配置 代码实现 一、youtube依赖+youtubeapikey 功能说明:此youtubeapi为https://www.googleapis.com/youtube/v3,通过单个youtube视频播放链接来获取此视频的其他一些具体参数,或者通过youtube合辑视频链接调用api后以获取到此合辑下的所有的视频的具体信息。

com.google.a MediaServiceCore:YouTube的非官方JavaAPI 02-24 YouTube的非官方JavaAPI 参与评论 您还未登录,请先 登录 后发表或查看评论 youtube-api 02-14 直播网站::目标:使用用户的gio-location显示当前季节内置:Create-React-App说明:: YoutubeAPI使用Sample 02-22 (1)YoutubeAPI支持搜索用户信息和video信息,支持多种搜索适用。

(2)能很方便的在APP中播放检索到的短片;只能在播放前设置播放窗口的大小,但不能实现各种播放模式
用于Java开发机器学习和深度学习的VectorAPI(翻译) taylor的博客 09-29 1534 本文介绍了用于Java开发机器学习和深度学习的VectorAPI 英语原文链接https://software.intel.com/en-us/articles/vector-api-developer-program-for-java VectorAPI教程介绍什么是SIMD?什么是VectorAPI?Vector接口VectorTypeVector运算机器学习中的性能提升基本线性... 使用Youtube官方API获取频道及视频数据 zzz_zjz的博客 03-21 2万+ 一、前期调研 开始决定做Youtube的时候先是查阅了百度和Google上的一些搜索结果。

当我以youtube爬虫作为搜索关键词时,结果并不尽人意:在这其中部分爬虫是以下载视频为目的,没有获取视频其他信息,因此并不是我所需要的。

还有部分商业网站提供付费接口服务,但是秉着能省则省的原则,这种肯定是不会考虑的,因此只能另辟奇径。

当我切换以“youtubeapi”为关键词搜索时,发现了下面这个。

​... YoutubeDataAPI使用简介 lpp 08-11 8566 本文适用于希望编写YouTube交互程序的开发者,可以快速地了解YoutubeDataAPI接口使用方法。

YoutubeAPI使用 weixin_33804582的博客 01-10 4610 YoutubeAPI使用 1  YoutubeAPI能干什么 2  YoutubeAPI 2.0Youtube简介 2.1 如何使用YoutubeAPI 2.1.1 获取Youtube 的开发者ID 2.1.2 YoutubeAPI使用 2.3 如何播放检索到的video 2.3.1 使用http请求播放 2.3.2 将播放窗体嵌入到自己的页面内播放 3  Sample实现 1  You... 【图文详解】Java自动上传视频到Youtube guozhaohui628 01-28 2203 图片全转存失败,去看原文吧 java播放v3录音_YoutubeDataAPIV3Javascript-将音频和图像上传为视频 weixin_35613582的博客 02-24 48 我正在使用youtubedataapiv3来上传图像和音频,因为带有图像的视频将显示为视频.我可以上传视频作为示例.我试过thumbnail:$('#file_image').val(),来设置视频缩略图.但它没有任何想法.UploadVideo.prototype.uploadFile=function(file){varmetadata={snippet:{... java持续时间转换,如何在Java中转换YoutubeAPIV3持续时间 weixin_39948277的博客 02-27 19 TheYoutubeV3APIusesISO8601timeformattodescribethedurationofvideos.Somethinglikes"PT1M13S".AndnowIwanttoconvertthestringtothenumberofseconds(forexample73inthiscase).Is... java+selenium实现YouTuBe登录,视频数据获取 最新发布 hzy_qiyueguli的博客 06-30 345 java+selenium实现YouTuBe登录,视频数据获取前言环境准备废话不多说,直接上代码浏览器评论鼠标移动目前问题欢迎各位大佬钱来指正 前言 这段时间搞个小业务,想实现YouTuBe给视频自动发布评论。

目前已经实现YouTuBe自动点赞,自动评论实现了90%,有兴趣的朋友欢迎一看。

环境准备 win10开发, 还是老一套springboot开发 maven所需依赖如下 下面展示一些内联代码片。



請為這篇文章評分?