LoginSignup
23
25

More than 5 years have passed since last update.

percol (peco)でニコニコ動画を選択して再生する

Last updated at Posted at 2014-06-29

(2014/11/12追記 : peco(percol)を使ってコマンドラインから作業用BGMを検索・再生する - Qiita を書きました、便利)

RSSを読み込んでpercolで絞り込み、curlで動画をdumpした結果をmplayerにパイプします。

こんな感じ
スクリーンショット 2014-06-29 12.44.10.png
スクリーンショット 2014-06-29 12.45.53.png

必要なもの

  • percol (or peco)
  • curl
  • ruby
  • mplayer

動画をdumpするシェルスクリプト

以下を適当にパスが通ってるところに置いてIDとパスワードを埋めておきます

nicovideo-dump
#! /bin/sh

if [ $# -eq 0 ]
then
    TARGET=$(cat -)
else
    TARGET=$1
fi

EMAIL="hoge"
PASS="hoge"

SAVEDIR=/tmp
COOKIE=/tmp/nico_cookie
FILENAME=`echo $TARGET | ruby -e "print $<.read.chomp.split('/')[-1]"`

curl -c $COOKIE -d "mail=$EMAIL" -d "password=$PASS" "https://secure.nicovideo.jp/secure/login?site=niconico" --ssl -i > /dev/null
curl -b $COOKIE -c $COOKIE $TARGET -i > /dev/null
FLAPI_POSTFIX=`echo $FILENAME | ruby -e "print $<.read.chomp[0,2] == \"nm\" ? \"?as3=1\" : \"\""`
FLAPI_RES=`curl -b $COOKIE "http://flapi.nicovideo.jp/api/getflv/$FILENAME$FLAPI_POSTFIX"`
VIDEO_URL=`echo $FLAPI_RES | ruby -e "require \"cgi\";print CGI.unescape(Hash[*($<.read.chomp.split(\"&\").map{|e| e.split(\"=\")}.flatten)][\"url\"])"`
curl -b $COOKIE $VIDEO_URL
curl -b $COOKIE "https://secure.nicovideo.jp/secure/logout" --ssl -i > /dev/null

exit 0
$ nicovideo-dump http://www.nicovideo.jp/watch/sm****

みたいにして取得出来てたら成功
※取得方法が違うので公式チャンネル動画は取得出来ません

percolで動画を選んでmplayerに流す

適当にワンライナーでランキングを取得してpercolで選択してみます

$ ruby -r rss -e 'RSS::Parser.parse("http://www.nicovideo.jp/ranking/fav/daily/all?rss=2.0").channel.items.each {|item| puts item.link + "\t" + item.title}' | percol | awk '{print $1}'

これで選択した動画のURLが取得できていたらnicovideo-dumpとmplayerにパイプすると動画が再生できます

$ ruby -r rss -e 'RSS::Parser.parse("http://www.nicovideo.jp/ranking/fav/daily/all?rss=2.0").channel.items.each {|item| puts item.link + "\t" + item.title}' | percol | awk '{print $1}' | nicovideo-dump | mplayer -

参考

ニコニコ動画のダウンロード - noise

23
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
25