- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个谷歌驱动器视频文件(如 https://drive.google.com/file/d/FILE_ID/view ),我想获取它的 redirector.googlevideo.com 链接。
像http://api.getlinkdrive.com/ 这样的网站如何?做吗?我试过使用 Google Drive REST API(v2 和 v3),但仍然找不到方法。许多电视节目和电影网站将他们的内容托管在谷歌驱动器上,并使用这个过期的“隐藏的”URL,这样你就不能将它嵌入其他地方。
我得到的最接近的方法是转到 docs.google.com/get_video_info?docid=FILE_ID 并获取 fmt_stream_map 链接,但这不会返回我需要的重定向器链接。
最佳答案
PHP 代码在这里不起作用,甚至没有意义,因为它将返回服务器端的结果。
这是我的 Javascript/Ajax 代码。不幸的是,你应该使用 Access-Control-Allow-Origin extension在 Chrome 浏览器中。首先请看this screenshot控制台窗口。
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://content.jwplatform.com/libraries/YOUR-JW-PLAYER-LICENSE-KEY.js"></script>
</head>
<body>
<p id="urls"></p>
<div id="myElement"></div>
</body>
<script>
var docid = "0B4Mn0g4wWmQ1ZThycVhOcDJQc2c";
var api_url = "https://docs.google.com/get_video_info";
var ans = {};
var url = "";
getGoogleVideoUrl();
function getGoogleVideoUrl(){
$.ajax({
url: api_url,
type: "get",
data: {
docid: docid,
},
success: function(response) {
//
// get value of which key is 'fmt_stream_map'.
//
var fmt_stream_map = getQueryVariable(response, 'fmt_stream_map');
//
// split my comma
//
var maps = fmt_stream_map.split("%2C");
//
// loop all links,
//
var purl = "";
for (x in maps) {
var res = decodeURIComponent(decodeURIComponent(maps[x])).split('|');
// purl = res[1].replace(new RegExp("/\/[^\/]+\.google\.com/", 'g'),"//redirector.googlevideo.com/");
// purl = res[1].replace(new RegExp("\.google\.com/", 'g'),".googlevideo.com/");
purl = res[1];
//.replace(/.c.docs.google.com/g,".googlevideo.com")
//.replace(/app=explorer/g,"app=storage")
//.replace(/key=ck2/g,"key=cms1")
//.replace(/&cp=/g,"&api=")
//.replace(/,cp&/g,',api&')
//.replace(/,cp,/g,',api,')
//.replace(/=cp,/g,'=api,')
//.replace(/&sparams=/g,'&cms_redirect=yes&sparams=');
switch (parseInt(res[0])) {
case 5:
quality = 'Low Quality, 240p, FLV, 400x240';
break;
case 17:
quality = 'Low Quality, 144p, 3GP, 0x0';
break;
case 18:
quality = 'Medium Quality, 360p, MP4, 480x360';
break;
case 22:
quality = 'High Quality, 720p, MP4, 1280x720';
break;
case 34:
quality = 'Medium Quality, 360p, FLV, 640x360';
break;
case 35:
quality = 'Standard Definition, 480p, FLV, 854x480';
break;
case 36:
quality = 'Low Quality, 240p, 3GP, 0x0';
break;
case 37:
quality = 'Full High Quality, 1080p, MP4, 1920x1080';
break;
case 38:
quality = 'Original Definition, MP4, 4096x3072';
break;
case 43:
quality = 'Medium Quality, 360p, WebM, 640x360';
break;
case 44:
quality = 'Standard Definition, 480p, WebM, 854x480';
break;
case 45:
quality = 'High Quality, 720p, WebM, 1280x720';
break;
case 46:
quality = 'Full High Quality, 1080p, WebM, 1280x720';
break;
case 82:
quality = 'Medium Quality 3D, 360p, MP4, 640x360';
break;
case 84:
quality = 'High Quality 3D, 720p, MP4, 1280x720';
break;
case 102:
quality = 'Medium Quality 3D, 360p, WebM, 640x360';
break;
case 104:
quality = 'High Quality 3D, 720p, WebM, 1280x720';
break;
default:
quality = 'transcoded (unknown) quality';
break;
}
ans[quality] = purl;
}
console.log(ans);
$('#urls').html(JSON.stringify(ans));
url = ans[Object.keys(ans)[0]];
build_player();
},
error: function(xhr) {
//Do Something to handle error
}
});
}
function build_player(){
var playerInstance = jwplayer("myElement");
playerInstance.setup({
file: url,
type: "mp4",
width: 800 ,
height: 600,
});
}
function getQueryVariable(query, variable) {
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
//return decodeURIComponent(pair[1]);
return pair[1];
}
}
console.log('Query variable %s not found', variable);
return "";
}
</script>
</html>
这段代码基本可以运行,但是在jwplayer组件中没有播放。
但是,如果你输入这个 URL,“https://docs.google.com/get_video_info?docid=0B4Mn0g4wWmQ1ZThycVhOcDJQc2c”,直接在 chrome 浏览器中,获取 JSON 文件,手动解析它,直接在这段代码中使用其中一个 URL 作为 jwplayer 的文件 url,它工作得很好,虽然它包含“app=explorer”标签本身。
我不确定为什么会这样。所以我试着比较 2 个链接,有些参数是不同的。第一个来自上面的代码并且不工作,第二个 JSON 文件直接并且工作。)
ei=hJ5yWaHCKYXb-wWona2YBA
ei=KZ5yWZSkK4aFqgXAwpoo
susci=o-AC34EOoA1Wst0Heh0U_bP9epqR8K9s4UBhwlqmsxKZKwAOA
susci=o-AH82qbGL8BcWQ3BPybbvZyuNBiDd2Uasz4J0ZNXJCZwobPje
expire=1500698308
expire=1500698217
cp=QVNFUkdfV1NOSVhOOnhwOWFybUloWXNX
cp=QVNFUkdfV1JPSFhOOmpURGRUeUt3eVpv
signature=3D306FD9D9ADA683D313AABDFE057B608A6F2A39.8BB3A9C321B6BEAC8D1D5AEED2F25511DF97CE2B
signature=2C2465BDFC4D9CCFD0D4A42F38BAEF44D55AFDF1.A916937113445ABB90D18B3AE89600729CFADDE6
为什么第一个不工作而第二个工作?有什么想法吗?
关于php - 如何从 Google 云端硬盘视频中获取 redirector.googlevideo.com 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115189/
我曾经像这样从谷歌驱动器文件中获取视频流的链接: https://r10---sn-3c27ln7s.c.docs.google.com/videoplayback?requiressl=yes&id
我的网站有这个“JS:Redirector-NL [Trj]”病毒问题 http://nutriconsulting.com.br/ ,当有人打开网页时,avast 防病毒软件会显示一个弹出窗口,显示
我如何在 Laravel 4 中使用参数模拟外观?例如,我正在尝试测试我的用户 Controller 和我的“登录”方法。 我的 Controller 方法 public function login
我有一个谷歌驱动器视频文件(如 https://drive.google.com/file/d/FILE_ID/view ),我想获取它的 redirector.googlevideo.com 链接。
我目前正在使用 Paypal 和 https://github.com/srmklive/laravel-paypal 进行 Paypal 结账。 .我正在使用快速结帐,我对其进行了一些修改以适应我的
我读过 $this->getHelper('[helper_name]')优于 $this->_helper->[helper_name] .我没能找到任何文档,其中哪一个更好/更受欢迎:$this-
我的问题是,我是否应该使用 YouTube API 加载我从玻璃上录制并作为通知附件发送到我的服务器的视频?或者,是否有我应该改用的镜像 API 调用? 例如,我收到的视频的 URL 如下所示: ht
我在尝试使用 Apache ISAPI 重定向器从 IIS 7 到 Tomcat 时遇到错误,但仅限于 32 位 W2K8 SP2 标准版。 它在 64 位 W2K8 R2 和 32 位 W2K3 上
我是一名优秀的程序员,十分优秀!