You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity跨平台教育APP:使用VideoPlayer在线播放YouTube视频遇阻求解

解决Unity VideoPlayer播放YouTube视频的问题

核心原因

YouTube不会直接暴露视频的MP4资源链接,你拿到的页面链接是网页入口而非流媒体地址,因此直接添加.mp4后缀完全无效。

可行解决方案

1. 通过YouTube Data API获取流媒体链接

你需要先申请YouTube Data API密钥,调用API接口获取对应视频的流媒体播放地址,再传入Unity VideoPlayer播放:

  • 步骤:

    • 前往Google开发者平台创建项目并启用YouTube Data API v3,获取API密钥
    • 调用https://www.googleapis.com/youtube/v3/videos?id={视频ID}&key={你的API密钥}&part=player,contentDetails接口,解析返回的JSON数据,提取适配的流媒体URL(通常是player.embedHtml中的src地址)
    • 将获取到的流媒体URL赋值给VideoPlayer.url属性

    简单C#示例代码:

    using UnityEngine;
    using UnityEngine.Networking;
    using System.Collections;
    
    public class YouTubeVideoPlayer : MonoBehaviour
    {
        public VideoPlayer videoPlayer;
        public string youtubeVideoId;
        public string apiKey;
    
        void Start()
        {
            StartCoroutine(GetYouTubeStreamUrl());
        }
    
        IEnumerator GetYouTubeStreamUrl()
        {
            string apiUrl = $"https://www.googleapis.com/youtube/v3/videos?id={youtubeVideoId}&key={apiKey}&part=player";
            using (UnityWebRequest webRequest = UnityWebRequest.Get(apiUrl))
            {
                yield return webRequest.SendWebRequest();
                
                if (webRequest.result != UnityWebRequest.Result.Success)
                {
                    Debug.LogError(webRequest.error);
                }
                else
                {
                    string responseText = webRequest.downloadHandler.text;
                    string embedUrl = ExtractEmbedUrl(responseText);
                    videoPlayer.url = embedUrl;
                    videoPlayer.Play();
                }
            }
        }
    
        string ExtractEmbedUrl(string json)
        {
            int startIndex = json.IndexOf("src=\"") + 5;
            int endIndex = json.IndexOf("\"", startIndex);
            return json.Substring(startIndex, endIndex - startIndex);
        }
    }
    

2. 使用第三方Unity插件

市面上有专门适配Unity的YouTube播放插件,这类插件内部封装了YouTube流的获取逻辑,你只需传入视频ID即可快速实现播放,无需自己处理API调用和JSON解析,同时兼容跨平台(iOS/Android/PC等)。注意选择合规的插件,确保符合YouTube服务条款。

注意事项

  • 确保Unity项目开启了Internet权限(在Player Settings中设置)
  • Android平台需要在Manifest中添加网络权限,iOS平台需配置ATS以允许HTTPS请求
  • 严格遵守YouTube的服务条款,不得通过非授权方式获取或播放视频内容

内容的提问来源于stack exchange,提问作者Сергій Курило

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:01:18