【Docker】プロキシサーバーでストリーミングしている動画のURLを知る
プロキシサーバーでストリーミング先のURLを知る
概要
動画のストリーミング先のURLをプロキシサーバーのアクセスログによって調べる方法をメモ。
環境
- Mac
- Vagrant
- Docker
- squid
- Docker
- Vagrant
Mac本体で動画ストリーミング再生して、squid on Docker on Vagrantのアクセスログを解析する。
Vagrantの事前準備
Mac本体からポートフォワードの設定をする。
config.vm.network "forwarded_port", guest: 3128, host: 3128
私はubuntu15_04を使用。 別に他のディストリビューションで問題なし。(結局はDockerだし。)
プロキシの設定
設定 --> ネットワーク
ネットワーク環境にsquidなどと別の構成を作っておくと良い。
※プロキシ設定をするとsquidを立ち上げていないときはインターネット接続できなくなる。
詳細からプロキシ設定へ進む
次の2つにチェックを入れる
- Webプロキシ[HTTP]
- 保護されたWebプロキシ(HTTPS)
2つともに次の項目を入力する
- プロキシサーバーアドレス
- 127.0.0.1
- ポート
- 3128
この設定を済ませた時点でsquid起動まではインターネットに接続できないので注意。
Vagrant上でsquid on Dockerを立ち上げる
Dockerイメージはsquidがつかいやすそうなこれを使う。
squid起動
#!/bin/sh $ sudo docker run --name squid -it --rm \ --publish 3128:3128 \ --volume /srv/docker/squid/cache:/var/spool/squid3 \ sameersbn/squid:3.3.8-20
この時点でインターネットにつながったはず。
別ターミナル(Vagrant上)で次のコマンドを実行するとMac上でアクセスしたURLが出て来る。
$ sudo docker exec -it squid tail -f /var/log/squid3/access.log
アクセスログをMac上に保存してsquidを終了する
※私はVagrantの共有フォルダを/vagrant_dataにしているので、Mac上に保存するために下記のようなスクリプトを作成
#!/bin/sh sudo docker exec -it squid cat /var/log/squid3/access.log > /vagrant_data/squid/squid3_access.log sudo docker stop squid
アクセスログから動画のURLを抽出する
動画はmp4のみとするとこんな感じ。
$ cat squid3_access.log | grep mp4 | sed 's/.*\(http.*\.mp4\).*/\1/g' >> mp4_list.txt
おわりに
悪用厳禁。