質問編集履歴
2
追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -453,3 +453,7 @@
|
|
453
453
|
旧ランタイムだと4.4MBほどまでしかアップロードできていませんでした。
|
454
454
|
|
455
455
|
teratail初利用の為、質問の仕方に至らぬ点があったらすいません。
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
追記:11MBほどまでアップロードできるようになりました。50MBまでアップロードできないのはなぜなのでしょうか。
|
1
変更点としては、urlfetchの実行間隔を開けたくらい?あと、URLを入力する部分を分離した。 11MB程度までアップロードができる。それ以下の動画は成功した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,19 +20,21 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
code.gs
|
24
|
+
|
25
|
+
```
|
24
26
|
|
25
27
|
//雑なコードですいません。お目汚し失礼します。
|
26
28
|
|
27
|
-
function
|
29
|
+
function download(id){
|
28
|
-
|
30
|
+
|
29
|
-
//
|
31
|
+
//メールアドレスとパスワードをベタ書き
|
30
|
-
|
32
|
+
|
31
|
-
var i
|
33
|
+
var mail = "メールアドレス", pass = "パスワード";
|
32
34
|
|
33
35
|
//ユーザーセッションを取得
|
34
36
|
|
35
|
-
var userSession = getUserSession(
|
37
|
+
var userSession = getUserSession(mail, pass);
|
36
38
|
|
37
39
|
//ユーザーセッションが取得できていたら
|
38
40
|
|
@@ -40,33 +42,55 @@
|
|
40
42
|
|
41
43
|
Logger.log("session=" + userSession);
|
42
44
|
|
43
|
-
|
45
|
+
Utilities.sleep(5000);
|
44
|
-
|
45
|
-
//動画ページが読み込まれていないと、getFlvが403を返すため。
|
46
|
-
|
47
|
-
//cookieでnicohistoryとuserSessionを渡すと動画情報が見れる。
|
48
46
|
|
49
47
|
var nicohistory = getNicoHistory(id);
|
50
48
|
|
49
|
+
if(nicohistory){
|
50
|
+
|
51
|
+
Utilities.sleep(5000);
|
52
|
+
|
51
|
-
//getflvを実行
|
53
|
+
//getflvを実行
|
52
|
-
|
54
|
+
|
53
|
-
var data = getFlv(id, userSession, nicohistory);
|
55
|
+
var data = getFlv(id, userSession, nicohistory);
|
54
|
-
|
55
|
-
|
56
|
+
|
56
|
-
|
57
|
-
for(var i = 0; i < data.length; i++){
|
57
|
+
for(var i = 0; i < data.length; i++){
|
58
|
-
|
58
|
+
|
59
|
-
var temp = data[i].split("=");
|
59
|
+
var temp = data[i].split("=");
|
60
|
-
|
60
|
+
|
61
|
-
if(temp[0].match("url")){
|
61
|
+
if(temp[0].match("url")){
|
62
|
+
|
62
|
-
|
63
|
+
//URLを取得
|
64
|
+
|
63
|
-
var url = unescape(temp[1]);
|
65
|
+
var url = unescape(temp[1]);
|
64
|
-
|
66
|
+
|
65
|
-
Logger.log(url);
|
67
|
+
Logger.log(url);
|
68
|
+
|
66
|
-
|
69
|
+
Utilities.sleep(5000);
|
70
|
+
|
67
|
-
//
|
71
|
+
//blobを取得
|
68
|
-
|
72
|
+
|
69
|
-
r
|
73
|
+
var blob = getBlob(url, userSession, nicohistory);
|
74
|
+
|
75
|
+
if(blob){
|
76
|
+
|
77
|
+
//アップロードする
|
78
|
+
|
79
|
+
var parentDir = "1hcyYh8HBVx8YRCN7LyMrL_sbMJXhMoXI";
|
80
|
+
|
81
|
+
var file = Drive.Files.insert({
|
82
|
+
|
83
|
+
title: "sm" + id,
|
84
|
+
|
85
|
+
parents: [{id: parentDir}]
|
86
|
+
|
87
|
+
}, blob);
|
88
|
+
|
89
|
+
return file.alternateLink;
|
90
|
+
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
70
94
|
|
71
95
|
}
|
72
96
|
|
@@ -82,33 +106,11 @@
|
|
82
106
|
|
83
107
|
function doGet() {
|
84
108
|
|
85
|
-
//blobを取得
|
86
|
-
|
87
|
-
var blob = func();
|
88
|
-
|
89
|
-
var u
|
109
|
+
var htmlOutput = HtmlService.createTemplateFromFile("main").evaluate();
|
90
|
-
|
91
|
-
|
110
|
+
|
92
|
-
|
93
|
-
|
111
|
+
htmlOutput.setTitle("ニコ動DL");
|
94
|
-
|
95
|
-
|
112
|
+
|
96
|
-
|
97
|
-
var file = Drive.Files.insert({
|
98
|
-
|
99
|
-
title: blob.getName(),
|
100
|
-
|
101
|
-
parents: [{id: parentDir}]
|
102
|
-
|
103
|
-
}, blob);
|
104
|
-
|
105
|
-
url = file.alternateLink;
|
106
|
-
|
107
|
-
}
|
108
|
-
|
109
|
-
//結果を表示
|
110
|
-
|
111
|
-
return
|
113
|
+
return htmlOutput;
|
112
114
|
|
113
115
|
}
|
114
116
|
|
@@ -340,16 +342,100 @@
|
|
340
342
|
|
341
343
|
}
|
342
344
|
|
343
|
-
//
|
345
|
+
// リクエスト
|
344
|
-
|
346
|
+
|
345
|
-
var resp = UrlFetchApp.fetch(url, options)
|
347
|
+
var resp = UrlFetchApp.fetch(url, options);
|
348
|
+
|
346
|
-
|
349
|
+
var blob = resp.getBlob();
|
350
|
+
|
347
|
-
return
|
351
|
+
return blob;
|
348
352
|
|
349
353
|
}
|
350
354
|
|
351
355
|
```
|
352
356
|
|
357
|
+
|
358
|
+
|
359
|
+
main.html
|
360
|
+
|
361
|
+
```
|
362
|
+
|
363
|
+
<!DOCTYPE html>
|
364
|
+
|
365
|
+
<html>
|
366
|
+
|
367
|
+
<head>
|
368
|
+
|
369
|
+
<base target="_top">
|
370
|
+
|
371
|
+
<style>
|
372
|
+
|
373
|
+
body {
|
374
|
+
|
375
|
+
background-color: #404040;
|
376
|
+
|
377
|
+
}
|
378
|
+
|
379
|
+
</style>
|
380
|
+
|
381
|
+
</head>
|
382
|
+
|
383
|
+
<body>
|
384
|
+
|
385
|
+
<input type="text" id="url" placeholder="動画URLを入力">
|
386
|
+
|
387
|
+
<button id="dlButton">ダウンロード</button>
|
388
|
+
|
389
|
+
<br>
|
390
|
+
|
391
|
+
</body>
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
<script>
|
396
|
+
|
397
|
+
var dlButton;
|
398
|
+
|
399
|
+
var inputUrl;
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
window.onload = function(){
|
404
|
+
|
405
|
+
dlButton = document.getElementById("dlButton");
|
406
|
+
|
407
|
+
inputUrl = document.getElementById("url");
|
408
|
+
|
409
|
+
dlButton.addEventListener("click", function(e){
|
410
|
+
|
411
|
+
var id = inputUrl.value.replace(/^.+sm/, "").replace(/?.+$/, "")
|
412
|
+
|
413
|
+
google.script.run.withSuccessHandler(function(val){
|
414
|
+
|
415
|
+
if(val){
|
416
|
+
|
417
|
+
alert("ダウンロード完了:" + val);
|
418
|
+
|
419
|
+
}else{
|
420
|
+
|
421
|
+
alert("読み込み失敗");
|
422
|
+
|
423
|
+
}
|
424
|
+
|
425
|
+
}).download(id);
|
426
|
+
|
427
|
+
alert("ダウンロード中:" + id);
|
428
|
+
|
429
|
+
});
|
430
|
+
|
431
|
+
};
|
432
|
+
|
433
|
+
</script>
|
434
|
+
|
435
|
+
</html>
|
436
|
+
|
437
|
+
```
|
438
|
+
|
353
439
|
「gas drive insert blob 制限」、「niconico getflv 止まる」などで検索してみたのですが原因が分からず、困っています。
|
354
440
|
|
355
441
|
|