Android 从 youtube 获取视频链接

2024-03-28

您好,我正在开发一个 Android 应用程序,我的应用程序的一部分想要将歌曲标题解析到 YouTube 并获取视频链接。获得 100% 正确的视频并不重要。那么我如何从 youtube 检索数据呢?

任何人都可以帮助我找到解决方案,这对我来说真的很有帮助。

Thanks


最常见的方法是使用 Youtube 数据 API,它将返回 XML/Json,您可以解析该 XML/Json 以检索视频 url 等内容。

更新 (2017/01/24) (v3)

使用以下调用通过搜索查询搜索 YouTube 视频:

https://www.googleapis.com/youtube/v3/search?part=snippet&q=fun%20video&key=YOUR-API-KEY

它支持以下基本搜索参数:

  • part:您要在搜索中检索的视频数据。对于基本搜索,建议值为snippet.
  • q:您要搜索的文字
  • key:您的 Google 开发者 API 密钥。该密钥可以在谷歌开发者API控制台 https://console.developers.google.com/在您的应用程序的凭据页面上。确保在您的密钥所属的应用程序上启用 Youtube Data API v3。

更多参数请参见谷歌API文档 https://developers.google.com/youtube/v3/docs/search/list

使用 Java 库

在 Android 上,您可以使用平台上可用的标准 HTTP 请求类对 URL 执行 HTTP 请求,也可以使用谷歌 API Java 库 https://developers.google.com/api-client-library/java/如下所示:

        YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
            public void initialize(HttpRequest request) throws IOException {
            }
        }).setApplicationName("YOUR-APPLICATION-NAME").build();

        String queryTerm = "A fun video"

        // Define the API request for retrieving search results.
        YouTube.Search.List search = youtube.search().list("id,snippet");

        search.setKey("Your-Api-Key");
        search.setQ(queryTerm);

        // Call the API and print first result.
        SearchListResponse searchResponse = search.execute();
        if(searchResponse.getItems().size() == 0)
        { 
           //No items found.
           return;
        }
        SearchResult firstItem = searchResponse.getItems().get(0);

        ResourceId rId = firstItem.getId();
        // Confirm that the result represents a video. Otherwise, the
        // item will not contain a video ID.
        if (rId.getKind().equals("youtube#video")) {
            Thumbnail thumbnail = firstItem.getSnippet().getThumbnails().getDefault();

            Log.d("YOUTUBE_SAMPLE","Video Id" + rId.getVideoId());
            Log.d("YOUTUBE_SAMPLE","Title: " + firstItem.getSnippet().getTitle());
            Log.d("YOUTUBE_SAMPLE","Thumbnail: " + thumbnail.getUrl());
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 从 youtube 获取视频链接 的相关文章

随机推荐

  • 理解这部分手臂的汇编代码

    syntax unified thumb cpu cortex m4 arch armv7e m fpu fpv4 sp d16 Changes from unprivileged to privileged mode thumb func
  • constexpr 可以和 volatile 结合使用吗?

    以下代码片段在 Clang 3 5 中工作正常 但在 GCC 4 9 2 中不行 int main constexpr volatile int i 5 有错误 错误 此处不能使用 挥发性 和 constexpr 如果我检查 Clang 生
  • 将新的提交添加到现有的 Git 标签

    我创建了一个 Git 标签v1 1 using git tag a v1 1 m my version 1 1 我推了那个标签 后来我做了一些相关的修改v1 1 现在 当我推送新的更改并使用检查 git 标签时git describe它向我
  • GTK 窗口运动动画?

    我想自动在屏幕上移动我的 GTK WINDOW 目前我将它置于绘制 移动循环中 但这非常不稳定 我对 GTK 编程 以及一般的 gui 编程 非常陌生 我缺少什么 您还没有说您希望窗口遵循什么样的路径 如果路径是时间的一些简单函数 也就是说
  • 如何在swift4中创建串行队列[重复]

    这个问题在这里已经有答案了 DispatchQueue init label qos attributes autoreleaseFrequency target 参数怎么写 原著笔记看了半天 还是不会写串行队列 None
  • Bootstrap - 如何用JSP实现模态弹出窗口

    我正在尝试使用 Spring MVC 通过 JSP 实现模式弹出窗口 In my 索引 jsp我有这个href链接 a href findCompany Find company a and 总是在这个 jsp中 有这样的代码片段 div
  • Crypto++“Tee”式过滤器

    我正在研究根据某些条件处理数据流 数据从输入管道读取 处理并推送到 Crypto CBC Mode
  • 如何在Mac中从命令行启动docker

    我在 mac 上安装了 docker 桌面 因此 为了启动 docker 我打开应用程序并找到 docker 然后我可以在顶部栏看到一个泊坞窗图标 稍后我可以从命令行运行 docker 命令 我的问题是如何从命令行启动 docker 本身
  • 使用 Passport.js 登录后如何通过 React 进行“重定向”?

    新手反应问题 我将其与passport js 和express 一起使用 我已成功登录该应用程序 但我不知道如何进行重定向 router post login passport authenticate local function req
  • ASP.NET Mvc - 可为空参数和逗号作为分隔符

    我应该如何在 global asax 中定义路由才能使用可为空的参数和逗号作为分隔符 我正在尝试为我的搜索用户页面实施路由规则 例如 Controller Action name page status Global asax 的完整条目
  • 是否可以将事件传递给 Ajax 表单的 OnBegin 函数?

    我的应用程序中有一个 Ajax 表单 我想将事件传递给OnBegin函数 然后使用event preventdefault 这将阻止表单提交 然后在检查某些条件时我尝试手动提交表单 但它不起作用 我无法弄清楚为什么 Ajax BeginFo
  • npm 从本地位置而不是从网络安装软件包?

    这个问题让我抓狂 npm 数据库中有一个包 但它有一些错误 这些错误已经在 github 中修复 我如何使用修复版本 github 版本 Edit 您可以直接从 GitHub 存储库安装 甚至只使用 GitHub 用户名和存储库名称 npm
  • 从 eclipse 中卸载和删除插件

    我正在从 eclipse 卸载选项中卸载名为 X 的插件 现在为了明确方法 我进入 eclipse 插件目录并从那里删除插件 jar 文件 现在我尝试重新安装相同的插件 并且 eclipse 提示错误 期间发生错误 org eclipse
  • 结构化 Spark 流指标检索

    我有一个具有结构化 Spark 流的应用程序 我想获取一些指标 例如调度延迟 延迟等 通常 此类指标可以在 Spark UI Streaming 选项卡中找到 但是 结构化流不存在此类功能我知道 那么如何获取这些指标值呢 目前 我尝试使用查
  • Java 泛型:泛型映射(深拷贝)的方法签名

    我有几个Map其本身可能再次包含Maps 任何类型 我写了一个带有签名的方法 public static
  • netbeans jvi vimrc 文件位置

    我已经开始使用 netbeans vim 插件 Jvi 并且我似乎找不到 vimrc 文件位置 我发现一个选项似乎说它将把 vimrc 保存在主文件夹中 但那里没有 我正在使用Ubuntu 谢谢 jVi 不支持 vimscript 因此它不
  • 文本框的日期验证

    我一直用它来将日期设为 mm dd yyyy 格式
  • ViewModelProviders 在 1.1.0 中已弃用

    看着谷歌文档 https developer android com topic libraries architecture viewmodel for ViewModel 他们展示了下面的示例代码 说明如何获得ViewModel val
  • 观察角度指令中 ngModel.$invalid 的变化

    我有一个指令替换select具有自定义输入控件的元素 这是它的简化版本 angular module MyModule directive reflector function timeout return require ngModel
  • Android 从 youtube 获取视频链接

    您好 我正在开发一个 Android 应用程序 我的应用程序的一部分想要将歌曲标题解析到 YouTube 并获取视频链接 获得 100 正确的视频并不重要 那么我如何从 youtube 检索数据呢 任何人都可以帮助我找到解决方案 这对我来说