Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #!/bin/sh
  2. # prerequisites: mp3info, gsed (gnu-sed), flac
  3.  
  4. /bin/echo -n "Reading files: "
  5. cat ${1} | while IFS= read -r LINE; do
  6. EXT=`echo ${LINE} | gsed -e 's/.*\.\([A-z]*\)$/\1/'`
  7. if [ "${EXT}" == "flac" ]; then
  8. metaflac --show-total-samples --show-sample-rate "${LINE}" | tr '\n' ' ' | awk '{print $1/$2}' >> /tmp/$$.playlength
  9. else # mp3
  10. mp3info -p "%S" "${LINE}" >> /tmp/$$.playlength
  11. echo '' >> /tmp/$$.playlength
  12. fi
  13. done
  14. echo "Done. Calculating..."
  15.  
  16. TOTSECS=0
  17. for value in `cat /tmp/$$.playlength`; do
  18. TOTSECS=`echo ${TOTSECS} $value | awk '{print $1+$2}'`
  19. done
  20. TOTSECS=`echo ${TOTSECS} | cut -f1 -d'.'`
  21. rm -f /tmp/$$.playlength
  22.  
  23. DAYS=`expr ${TOTSECS} / 86400`
  24.  
  25. TOTSECS=`expr ${TOTSECS} % 86400`
  26. HOURS=`expr ${TOTSECS} / 3600`
  27.  
  28. TOTSECS=`expr ${TOTSECS} % 3600`
  29. MINUTES=`expr ${TOTSECS} / 60`
  30.  
  31. SECONDS=`expr ${TOTSECS} % 60`
  32.  
  33. /bin/echo -n "Playing time:"
  34. echo "${DAYS} days, ${HOURS} hours, ${MINUTES} minutes, ${SECONDS} seconds"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement