Javascript HTML5视频-获取最终src URL目标

Javascript HTML5视频-获取最终src URL目标,javascript,html,html5-video,Javascript,Html,Html5 Video,我正在我的网站上显示来自第三方服务的视频内容: <video src="http://www.example.com/api/v1/media/video.mp4?status=true"></video> 除了媒体URL之外,该服务不提供特定用户收到的实际文件名 如何获取最终媒体路径/名称?尝试了多种方法,但iFrame被X-Frame-Options阻止:DENY和AJAX也被阻止。简单的回答是,您可能无法在客户端完成所有这一切。你会遇到问题。此外,无法直接获取元素

我正在我的网站上显示来自第三方服务的视频内容:

<video src="http://www.example.com/api/v1/media/video.mp4?status=true"></video>
除了媒体URL之外,该服务不提供特定用户收到的实际文件名


如何获取最终媒体路径/名称?尝试了多种方法,但iFrame被X-Frame-Options阻止:DENY和AJAX也被阻止。

简单的回答是,您可能无法在客户端完成所有这一切。你会遇到问题。此外,无法直接获取
元素的HTTP头

如果视频服务提供商启用了支持,您可以通过解决方案获得最终URL。即使启用了
CORS
,您也无法从
元素获取视频的HTTP头或最终URL

您可以通过以下方式解决此问题:

  • 对同一URL发出第二个HTTP请求(
    XMLHttpRequest
    $.ajax
    ,等等)
  • 发出请求,而不是
    GET
    请求<代码>获取请求将尝试检索整个文件
    HEAD
    请求不下载主体,只下载头,这足以解决重定向问题
  • 在HEAD响应的标题中查找最终URL路径
  • 下面是一个使用以下内容的示例:


    是否要在iframe html上执行操作?哪一个是第三方url或网站?我不确定我完全理解您写的内容,但是:在我写的时候,我尝试在iframe中使用url,但它被x-frames选项阻止。至于你问题的第二部分,URL是我网站域的第三方。我没有确切的要求,但我可以告诉你CasperJS/PhantomJS来实现这一点,但你需要研究一下。Youtube提供了他们视频的详细信息,请参见此问题:。但不确定这是否适用于您的情况,您可能会被迫在后端下载.mp4,获取其元数据并将其发送到您的客户端代码。@AnupYadav我熟悉服务器端的无头webkits,但在我的情况下,它不会起多大作用,因为每个用户都会收到不同的视频文件。很好。修正了打字错误。
    http://www.example.com/api/v1/media/video.mp4?status=true REDIRECT TO http://www.example.com/api/v1/media/US/EN/English_CAT.mp4
    
    var request = new Request(yourVideoUrl);
    request.mode = 'cors';
    request.method = 'HEAD';
    
    fetch(request)
    .then(function(res){
      console.log(res.url); // This should be the final URL
    });