月次アーカイブ: 10月 2014

夜な夜な自家発電に勤しんでいる中高生から中高年の皆様こんばんは。前回、xvideosの動画ダウンロードシェル芸をご紹介いたしましたが、やはりここは海外動画サイトの双璧をなすxhamsterもシェル芸でダウンロードしたいですよね?

xhamsterの動画ページですが、ソースを見てみるとflvとmp4の両方がダウンロードできるようです。こちらのサイトによると「クライアント側のフラッシュが無効時に表示されるmp4ファイルの直リンが稀に書いてあります」とのことですが、いくつかの動画を見てみたところ、稀にどころか100%の確率で両方ダウンロードできました。また、ダウンロードURLはmp4のほうがシンプルでしたので、先にmp4をダウンロードするシェル芸をご紹介しましょう。

[ (っ´∀`)っ@友の会 ~]$ URI=http://jp.xhamster.com/movies/123456/ERO_DOUGA.html ; wget -O $(basename $(dirname ${URI}))_$(basename ${URI} | sed -e 's/html/mp4/') "$(curl -s ${URI} | grep mp4 | grep href | sed -e 's/<a href="//;s/"//' | awk '{print $1}')"

サンプルのURLはダミーです。 http://jp.xhamster.com/movies/123456/ERO_DOUGA.html の最後のディレクトリ「123456」は恐らくユニークな番号が振られているはずです。ただし、htmlファイルの名前は恐らくアップロード者のセンスで命名されていることが推測されるため、ダウンロードしたファイルの重複を防ぐため、「123456_ERO_DOUGA.mp4」としてダウンロードするようにしています。

さて、次にflvのダウンロードですが、こちらはちょっと厄介でした。と言ってもURLエンコードの種類が増えて、かつ連続したURLエンコードの表記があったのと、CDNのURLが「[0-9].xhcdn.com&file=〜〜〜」となっているところを「[0-9].xhcdn.com/key=〜〜〜」にしたくらいでしたが。厄介とか言いながら、じっくりURLを観察してみると意外とすんなりいけました。それではこちらもワンライナーを見てみましょう。例によってURLはダミーです。

[ (っ´∀`)っ@友の会 ~]$ URI=http://jp.xhamster.com/movies/123456/ERO_DOUGA.html ; wget -O $(basename $(dirname ${URI}))_$(basename ${URI} | sed -e 's/html/flv/') $(curl -s ${URI} | grep flv | sed -e 's/%3A/:/g;s/%253A/:/g;s/%252F///g;s/%2B/+/g;s/%2F///g;s/%3F/?/g;s/%2C/,/g;s/%3D/=/g;s/%26/&amp;/g;s/&amp;amp;/ /g;s/srv=/ /;s/xhcdn.com&file=/xhcdn.com/key=/g;s/&image/ /' | awk '{print $4}')

これでダウンロードできました。

なお、動画をダウンロードする際は、いわゆる違法ダウンロードとならないよう、著作権法を守って楽しんでくださいね♡ また、本エントリーに書かれた方法は 2014/10/22 現在動作確認をとっていますが、xhamster側がシェル芸対策を施せば使えなくなる技でもあることをお含みおきくださいΞ(´ ゚_。`)

 

夜な夜な自家発電に勤しんでいる中高生から中高年の皆様こんにちは。htmlソースにリンクがベタ書きされている静止画と違い、動画はcdnからの直リンク防止策が講じられているようです。しかしシェル芸人たるもの、ダウンロードのためだけにブラウザを開きっぱなしにするのはカッコ悪いですよね?さあワンライナーで動画をゲットしましょう!

[ (っ´∀`)っ@友の会 ~]$ URI=http://jp.xvideos.com/video〜〜〜/〜〜〜〜〜 ; wget -O $(basename ${URI}).flv $(curl -s ${URI} | grep flv_url | sed -e 's/%3A/:/g;s/%2F//g;s/%3F/?/g;s/%3D/=/g;s/%26/&/g;s/&amp;/ /g;s/flv_url=//g' | awk '{print $11}')

動画のページを開いてソースを見てみると、flv_url=〜〜〜という箇所があって、ここが動画の埋め込み場所だということが判明しました。最初はリンク先の http://〜〜〜(cdnのURL)/ほにゃらら.flv までをコピペしてwgetしてみたのですが、どうやらその後の文字列も付け加えないといけないようです。リファラやユーザーエージェントは偽装しなくてもいけました。拡張子のあとの文字列はURLエンコードで変換されているので、sedで置換しています。間違っても動画を見て痴漢しないでくださいね。Yes 置換,No 痴漢 の精神で。

なお、動画をダウンロードする際は、いわゆる違法ダウンロードとならないよう、著作権法を守って楽しんでくださいね♡ また、本エントリーに書かれた方法は 2014/10/22 現在動作確認をとっていますが、xvideos側がシェル芸対策を施せば使えなくなる技でもあることをお含みおきくださいΞ(´ ゚_。`)

みなさんおはようございます。ゆうべ悶々としておりましたらこんな閃きが降臨してしまいまして。

突然ですが、水原さな、かわいいですよね。そんな彼女の連番JPG画像を保存したいとするじゃないですか。で、URLの構造ですが、女優名のディレクトリの配下に1から10のディレクトリがあって、その中に「女優名-1.jpg」〜「女優名-12.jpg」のファイルがあるとしましょう。

http://www.example.com/EROGAZOU/sana_mizuhara/1/sana_mizuhara-1.jpg
http://www.example.com/EROGAZOU/sana_mizuhara/1/sana_mizuhara-2.jpg
・・・
http://www.example.com/EROGAZOU/sana_mizuhara/1/sana_mizuhara-12.jpg
・・・
http://www.example.com/EROGAZOU/sana_mizuhara/10/sana_mizuhara-1.jpg
http://www.example.com/EROGAZOU/sana_mizuhara/10/sana_mizuhara-2.jpg
・・・
http://www.example.com/EROGAZOU/sana_mizuhara/10/sana_mizuhara-12.jpg

ディレクトリ名の数字もファイル名の数字もゼロパディングされていないので、seqコマンドを使わずにfor文でまわしてwgetできそうですね。しかし、画像を取得するときにディレクトリ別に保存しないと、ファイル名が重なってしまうので「女優名-1.jpg」「女優名-1.jpg.1」などのように嫌なことになってしまいます。というわけで以下のワンライナーです。

[ (っ´∀`)っ@友の会 ~]$ for A in {1..10}; do for B in {1..12} ; do mkdir -p ${A} ; cd ${A} ; wget http://www.example.com/EROGAZOU/sana_mizuhara/${A}/sana_mizuhara-${B}.jpg; cd ../ ; done ; done

さて次に、これらの画像URL一覧をテキストファイルで入手したとしましょう。テキストのファイル名は「LIST-jpg.txt」とします。この場合、ディレクトリ名の連番だけ意識すればよいのですが、ディレクトリ名の数字だけうまく抜き出したいですよね?幸いなことに、最下層のディレクトリが連番の数字となっています。そこでbasenameとdirnameの合わせ技です。大変満足、お見事、技有り一本!!

[ (っ´∀`)っ@友の会 ~]$ for A in $(cat LIST-jpg.txt); do mkdir -p $(basename $(dirname $A)) ; cd $(basename $(dirname $A)) ; wget $A ; cd ../ ; done

ね、簡単でしょう?

ウサギィさんの社屋移転記念オープニングパーティにお呼ばれしてきました。旧社屋は社長の町さんのご自宅だったのですが(と言っても、立派なタワーマンションです)、今度の社屋は芝浦のリア充な立地にあるこれまたシャレオツなビルでして、内装に至っては織田裕二や鈴木保奈美が出て来そうなトレンディドラマ(死語)のようで、実に私の想像力が貧困かを思い知らされたのであります、はい。

ウサギィさん看板
ウサギィさん看板

…続きを読む