質問編集履歴
5
脱字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -122,7 +122,7 @@
|
|
122
122
|
一方、以下のダウンロードリンク経由で動画ファイルにアクセスした場合は、正しくダウンロードでき、ローカルに保存されたファイルは再生できます。
|
123
123
|
|
124
124
|
```html
|
125
|
-
<a role="button" name="dlVideoBtn" class="btn btn-primary float-right" href="/auth_dist/xxxx.mp4" download="">ダウンロード</a>
|
125
|
+
<a role="button" name="dlVideoBtn" class="btn btn-primary float-right" href="/auth_dist/xxxx.mp4" download="xxxx.mp4">ダウンロード</a>
|
126
126
|
```
|
127
127
|
|
128
128
|
```
|
4
再生できない場合のリクエストが2回に分かれていたので、1回目のリクエストヘッダを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -77,6 +77,17 @@
|
|
77
77
|
Cookie: /session=.eJwdj0FqA...
|
78
78
|
|
79
79
|
# Androidでvideoタグを読み込んだ場合のリクエストヘッダ(再生できない)
|
80
|
+
Host: xxxxxxxxxxxxxxx
|
81
|
+
Accept-Encoding: identity;q=1, *;q=0
|
82
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML,
|
83
|
+
like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
84
|
+
Chrome-Proxy: frfr
|
85
|
+
Accept: */*
|
86
|
+
Referer: xxxxxxxxxxxxxxx
|
87
|
+
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
|
88
|
+
Range: bytes=0-
|
89
|
+
Cookie: /session=.eJwdj0FqA...
|
90
|
+
|
80
91
|
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
81
92
|
Cookie: /session=eyJfZnJlc2...
|
82
93
|
Allow-Cross-Domain-Redirect: false
|
@@ -84,7 +95,22 @@
|
|
84
95
|
Connection: Keep-Alive
|
85
96
|
Accept-Encoding: gzip
|
86
97
|
|
98
|
+
|
87
|
-
# Androidで動画ファイルのURLにアクセス
|
99
|
+
# Androidで動画ファイルのURLにアクセスした場合のリクエストヘッダ(再生できない)
|
100
|
+
Host: xxxxxxxxxxxxxxx
|
101
|
+
Accept-Encoding: identity;q=1, *;q=0
|
102
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML,
|
103
|
+
like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
104
|
+
Chrome-Proxy: frfr
|
105
|
+
Accept: */*
|
106
|
+
Referer: xxxxxxxxxxxxxxx
|
107
|
+
175901.mp4
|
108
|
+
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
|
109
|
+
Range: bytes=0-925456
|
110
|
+
If-None-Match: "5dbaa25b-e1f11"
|
111
|
+
If-Modified-Since: Thu, 31 Oct 2019 08:59:07 GMT
|
112
|
+
Cookie: /session=.eJwdj0FqA...
|
113
|
+
|
88
114
|
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
89
115
|
Allow-Cross-Domain-Redirect: false
|
90
116
|
Host: xxxxxxxxxxxxxxx
|
3
セッションIDに関する記述に誤りがあったので修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,41 +56,54 @@
|
|
56
56
|
|
57
57
|
動画を上記コードの※部分で、動画ファイルをリクエストされた際のヘッダを確認したところ、
|
58
58
|
以下のような出力が得られました。
|
59
|
-
再生できないときは、この後、ログインページへリダイレクトする
|
59
|
+
再生できないときは、この後、ログインページへリダイレクトするレスポンスが続きます。
|
60
|
+
(ページの取得に対するリダイレクトではないため、ブラウザでの見かけ上はログインページには遷移しません)
|
60
61
|
|
61
62
|
このことから、Microsoft Edgeでの動画リクエストの場合のみ、
|
62
63
|
ログイン状態が解除されてしまい、動画ファイルが配信されていないものと推測されます。
|
63
|
-
|
64
|
+
よく見ると、なぜかセッションIDが変わっていることがわかります。
|
64
|
-
同じセッションIDでリクエストした、動画ファイル以外のファイルは正しく取得・レンダリングできています。
|
65
65
|
|
66
|
+
```
|
66
|
-
Android
|
67
|
+
# Androidでページを取得した場合のリクエストヘッダ(表示できる)
|
67
|
-
|
68
|
+
Host: xxxxxxxxxxxxxxx
|
68
|
-
|
69
|
+
Cache-Control: max-age=0
|
69
|
-
|
70
|
+
Upgrade-Insecure-Requests: 1
|
71
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML,
|
72
|
+
like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
73
|
+
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/a
|
74
|
+
png,*/*;q=0.8
|
75
|
+
Accept-Encoding: gzip, deflate, br
|
76
|
+
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
|
77
|
+
Cookie: /session=.eJwdj0FqA...
|
70
78
|
|
79
|
+
# Androidでvideoタグを読み込んだ場合のリクエストヘッダ(再生できない)
|
80
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
81
|
+
Cookie: /session=eyJfZnJlc2...
|
82
|
+
Allow-Cross-Domain-Redirect: false
|
83
|
+
Host: xxxxxxxxxxxxxxx
|
84
|
+
Connection: Keep-Alive
|
85
|
+
Accept-Encoding: gzip
|
86
|
+
|
87
|
+
# Androidで動画ファイルのURLにアクセス(アドレスバーに貼り付け)した場合のリクエストヘッダ(再生できない)
|
88
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
89
|
+
Allow-Cross-Domain-Redirect: false
|
90
|
+
Host: xxxxxxxxxxxxxxx
|
91
|
+
Connection: Keep-Alive
|
92
|
+
Accept-Encoding: gzip
|
93
|
+
Cookie: /session=eyJfZnJlc2...
|
71
94
|
```
|
72
|
-
# Windowsから動画ファイルを取得した場合のリクエストヘッダ(再生できる)
|
73
|
-
Host: xxxxxxxxxx
|
74
|
-
Connection: keep-alive
|
75
|
-
Sec-Fetch-Mode: no-cors
|
76
|
-
Accept-Encoding: identity;q=1, *;q=0
|
77
|
-
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
|
78
|
-
Accept: */*
|
79
|
-
Sec-Fetch-Site: same-origin
|
80
|
-
Referer: xxxxxxxxxx
|
81
|
-
Accept-Language: ja,en-US;q=0.9,en;q=0.8
|
82
|
-
Cookie: xxxxxxxxxx
|
83
|
-
Range: bytes=0-
|
84
|
-
If-Range: "5dbaa25b-e1f11"
|
85
95
|
|
96
|
+
一方、以下のダウンロードリンク経由で動画ファイルにアクセスした場合は、正しくダウンロードでき、ローカルに保存されたファイルは再生できます。
|
97
|
+
|
98
|
+
```html
|
99
|
+
<a role="button" name="dlVideoBtn" class="btn btn-primary float-right" href="/auth_dist/xxxx.mp4" download="">ダウンロード</a>
|
100
|
+
```
|
101
|
+
|
102
|
+
```
|
86
|
-
# Android
|
103
|
+
# Androidで動画ファイルのダウンロードリンクをクリックした場合のリクエストヘッダ(ダウンロードできる)
|
87
|
-
Host:
|
104
|
+
Host: xxxxxxxxxxxxxxx
|
88
|
-
Accept-Encoding: identity;q=1, *;q=0
|
89
|
-
User-Agent: Mozilla/5.0 (Linux; Android
|
105
|
+
User-Agent: Mozilla/5.0 (Linux; Android 6.0; BG2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36 EdgA/42.0.2.3985
|
90
|
-
Chrome-Proxy: frfr
|
91
|
-
Accept:
|
106
|
+
Accept-Encoding: gzip, deflate, br
|
92
|
-
Referer: xxxxxxxxxx
|
93
107
|
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
|
94
|
-
Range: bytes=0-
|
95
|
-
Cookie:
|
108
|
+
Cookie: /session=.eJwdj0FqA...
|
96
109
|
```
|
2
認証方法を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
nginx + uWSGI + Python(Flask)で、動画ファイルをログインした人だけに配信しようとしています。
|
2
2
|
認証はPython側で行い、動画ファイルの送信はファイルサイズが大きいため、nginxのX-Accel-Redirect機能を使用しています。
|
3
|
+
認証にはFlask-Loginを使用しています。
|
3
4
|
|
4
5
|
## 解決したいこと
|
5
6
|
|
1
誤字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
|
60
60
|
このことから、Microsoft Edgeでの動画リクエストの場合のみ、
|
61
61
|
ログイン状態が解除されてしまい、動画ファイルが配信されていないものと推測されます。
|
62
|
-
ただ、ヘッダのCookieを見る限り、
|
62
|
+
ただ、ヘッダのCookieを見る限り、セッションIDは正しく送られているように見えます。
|
63
63
|
同じセッションIDでリクエストした、動画ファイル以外のファイルは正しく取得・レンダリングできています。
|
64
64
|
|
65
65
|
Android上のMicrosoft Edgeからの動画リクエスト時に
|