autodate.sh 766 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/bash
  2. # Move into place if a directory is provided
  3. if [ -n "${1}" ]; then
  4. if [ -d "${1}" ]; then
  5. cd "${1}"
  6. else
  7. echo "Usage: ${0} [path]" 1>&2
  8. exit 1
  9. fi
  10. fi
  11. # Scan for media files
  12. for i in *.mp4 *.mkv *.m4v; do
  13. YTID="`echo "${i}" | sed 's%^S20[0-9][0-9]E[0-9]* - \(.*\)\.m[pk4][4v]%\1%'`"
  14. if [ -z "${YTID}" ] || [ "${YTID}" == "${i}" ]; then
  15. continue
  16. fi
  17. # Find related meta files
  18. META="${YTID}.meta"
  19. if [ -s "${META}" ]; then
  20. continue
  21. fi
  22. # Find the media file mtime
  23. DATE="`stat -c '%Y' "${i}"`"
  24. if [ -z "${DATE}" ]; then
  25. echo "Could not determine date for: ${i}" 1>&2
  26. continue
  27. fi
  28. # Add missing meta files
  29. echo "# Autogenerated" > "${META}"
  30. echo "date = ${DATE}" >> "${META}"
  31. touch -r "${i}" "${META}"
  32. done
  33. # Cleanup
  34. exit 0