我用java编写的桌面应用程序尝试从Google云端硬盘下载公共文件.正如我所发现的那样,它可以通过使用文件来实现webContentLink(它可以在没有用户授权的情况下下载公共文件).
因此,下面的代码适用于小文件:
String webContentLink = aFile.getWebContentLink();
InputStream in = new URL(webContentLink).openStream();
Run Code Online (Sandbox Code Playgroud)
但它不适用于大文件,因为在这种情况下,webContentLink无需用户确认谷歌病毒扫描警告就无法直接下载文件.查看示例:Web内容链接.
所以我的问题是如何在未经用户授权的情况下从Google云端硬盘获取公开文件的内容?
在我的程序中,我想用jquery/javascript做两件事:
要做第一件事我使用$(".className").css()方法,但它只改变那些已经有className类的元素的样式,即如果我以后添加className到元素,它的样式将不是新的.我怎么解决这个问题?
也可以在jsfiddle看到它.
$("p").addClass("redclass");
$(".redclass").css("color", "darkRed");
$("span").addClass("redclass");Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>I want to be red! And I am.</p>
<span>I want to be red too but I'm not :'(</span>Run Code Online (Sandbox Code Playgroud)
结果:
在我看来,如果您不是它的所有者,YouTube API 禁止下载视频字幕:
视频的字幕只能由该视频的所有者创建,检索,修改和删除.
上面的链接会导致YouTube API v2.0的文档被弃用,但似乎在v3.0中此政策保持不变.如果您尝试下载视频的标题,则会收到以下403错误:
与请求关联的权限不足以下载字幕轨道.该请求可能未得到适当授权,或者视频订单可能未启用此标题的第三方贡献.
在同一时间,你只需要API_KEY到列出任何的YouTube视频字幕没有任何授权(实例化对象的YouTube在此官方例子):
youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY,
new HttpRequestInitializer() {
public void initialize(HttpRequest request)
throws IOException {
}
}).setApplicationName("youtube-cmdline-search-sample").build();
CaptionListResponse captionListResponse = youtube
.captions()
.list("snippet", "jNhtbmXzIaM")
.setKey(API_KEY)
.execute();
List<Caption> captions = captionListResponse.getItems();
CaptionSnippet snippet;
for (Caption caption : captions) {
snippet = caption.getSnippet();
System.out.println("ID: " + caption.getId());
System.out.println("Name: " + snippet.getName());
System.out.println("Language: " + snippet.getLanguage());
System.out.println();
}
Run Code Online (Sandbox Code Playgroud)
那么YouTube API …
如何以编程方式获取正在播放的YouTube视频的字幕?
最初,我尝试通过YouTube API离线进行此操作,但似乎 YouTube禁止获取您不是所有者的视频的字幕。
现在,我正在尝试在线进行。我没有找到用于字幕的YouTube Player Api方法,我也试图通过videojs播放器的方式将 YouTube字幕作为TextTrack与TextTrack一起使用,但是以下方法不起作用:
<html>
<head>
<link href="//vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="//vjs.zencdn.net/4.12/video.js"></script>
<script type="text/javascript" src="../lib/youtube.js"></script>
</head>
<body>
<video id="myvideo"
class="video-js vjs-default-skin vjs-big-play-centered"
controls
preload="auto"
width="640"
height="360">
</video>
<script type="text/javascript">
var myvideo = videojs(
"myvideo",
{
"techOrder": ["youtube"],
"src": "https://www.youtube.com/watch?v=jNhtbmXzIaM"
},
function() {
console.log('Tracks: ' + this.textTracks().length); //zero here :(
/*var aTextTrack = this.textTracks()[0];
aTextTrack.on('loaded', function() {
console.log('here it is');
cues = aTextTrack.cues();
console.log('Ready State', aTextTrack.readyState())
console.log('Cues', …Run Code Online (Sandbox Code Playgroud)
你好!我的问题是关于javascript.
我想
1.要求用户选择一个目录
2.然后将我的一堆文件写入其中(可能与创建子目录)而不与用户交互
我怎样才能做到这一点?我可以吗?
我是javascript的新手,希望对你有所帮助.
PS.
我听说过要求用户通过保存文件对话框选择路径然后将数据保存到选定文件的能力,但是我想让用户一次选择目录,然后在其中创建一堆文件而不打扰每个用户.