min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi3 omxplayerで最近のmp3を順番に再生するスクリプト(5MB以上は読み飛ばす)

f:id:min117:20200119114854p:plain

動画からワンクリックで音声を抽出+再生できる機能を先日実装した。

min117.hatenablog.com

おかげでサーバにmp3がどんどん貯まる。

 

お気に入りのmp3ばかりなので順番に再生したい。最新のだけを拾って再生するスクリプトにする。長い音声(5MB以上)は音楽以外(英語の会話)だったりするから読み飛ばす

 

RaspberryPi3 で実行してテレビで再生させる。

 

できた。

$ vim mymp3recent.sh

f:id:min117:20200119114244p:plain

f:id:min117:20200119114313p:plain

29行目+61行目

ファイル名に半角スペースが含まれていてもブツ切りされないよう一時的にIFSを変更している。

min117.hatenablog.com

 

 

 

 

コピペ用

  1 #!/bin/bash

  2 

  3 shopt -s expand_aliases

  4 source ~/.bashrc

  5 

  6 # shopt について

  7 # https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

  8 

  9 # 異常時にちゃんと止まるスクリプト

 10 # http://fj.hatenablog.jp/entry/2017/05/20/192431

 11 #set -eu -o pipefail

 12 #trap 'echo "ERROR: line no = $LINENO, exit status = $? > &2; exit 1' ERR

 13 

 14 mydate=`date +"%Y%m%d_%H%M%S"`

 15 mypath=`pwd`

 16 

 17 echo $mydate

 18 

 19 # http://d.hatena.ne.jp/nattou_curry_2/20091103/1257262803

 20 # Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計

 21 

 22 # 関数

 23 # function multi() { echo "数値を入力"; read ans; for i in $(seq 1 10); do ech    o "$i"; echo $*1; done; }

 24 

 25 # IFSを一時的に変更

 26 # http://min117.hatenablog.com/entry/2020/01/03/104644

 27 # ( IFS=$'\n'; for i in $(ls -rt | grep mp3 | tail -n 10 ); do echo "$i"; )

 28 

 29 ( IFS=$'\n'

 30     ## ls -rtでファイル名だけ取得

 31     # IFSを改行だけにしてるから

 32     # 半角入ってても取得できる

 33     for i in $(ls -rt | grep .*mp3$ | tail -n 30)

 34     do

 35         echo "$i"

 36         # ファイルサイズを取得

 37         # lsに人間読めるhをつけちゃうとファイルサイズ表記が3.1Mのようになり

 38         # if文で使えなくなる

 39       # mp3SIZE=`ls -shalrt "$i" | awk '{print $1}'`

 40         #mp3SIZE=`ls -salt "$i" | awk '{print $1}'`

 41         mp3SIZE=`ls -salt "$i" | awk '{print $1}'`

 42         mp3TIME=`ls -salt "$i" | awk '{print $7,$8,$9}'`

 43         echo $mp3SIZE'KB'

 44         echo '----------'

 45         echo $*2'MB'

 46         echo $mp3TIME

 47         echo '----------'

 48         # echo `echo $mp3SIZE | awk -FM '{print $1}'`

 49         # 5MB以上のmp3なら読み飛ばす

 50         if [[ "$mp3SIZE" -gt 5000 ]]

 51         then

 52             echo '5000 over'

 53         else

 54             echo 'YEEEEES'

 55             omxplayer "$i"

 56         fi

 57         

 58         echo '--------------------'

 59     done

 60 

 61 )

 62 

 

 

*1:ans*i

*2:mp3SIZE/1024