2019-01-16 12:21:51 +01:00
#!/bin/bash
2019-05-21 15:45:10 +02:00
# Copyright (C) 2019 Quentin GIBEAUX <qgibeaux@april.org>
2019-05-21 15:39:18 +02:00
#
# This file is part of lav-outils from "April/Libre à vous !"
#
# This script is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
2019-01-16 12:21:51 +01:00
usage( ) { echo " $0 -s source_file -d destination_file -u http://... -t \"title\" -p path/to/ffmpeg/binary " ; exit 0; }
[ $# -eq 0 ] && usage
while getopts "s:d:u:t:p:h" arg; do
case $arg in
s)
source = ${ OPTARG }
; ;
d)
destination = ${ OPTARG }
; ;
u)
url = ${ OPTARG }
; ;
t)
title = ${ OPTARG }
; ;
p)
FFmpegBin = ${ OPTARG }
; ;
h | *) # Display help.
usage
exit 0
; ;
esac
done
if [ ! -f $source ] ; then
echo " File $source does not exist "
usage
exit 1
fi
if [ ! -f " $FFmpegBin " ] ; then
echo " $FFmpegBin is not executable "
usage
exit 1
fi
2019-01-22 18:13:59 +01:00
image = "lav-outils/podcasts/images/image-pour-etiqueter-podcast.jpg"
2019-01-16 12:21:51 +01:00
fichiertemp = " $( command mktemp -t "tmp.XXXXXXXXXX.ogg" ) "
( echo -en ";FFMETADATA1\nMETADATA_BLOCK_PICTURE=" ; ( i = ${ image } ; t = 3; m = "image/jpeg" ; eval "w=`identify-im6 " $i " |awk '{g= $3 ;sub( " x"," h = " ,g);print g;d= $5 ;gsub(/-.*/, " ",d);print " d = " d}'`" ; echo -en " \x00\x00\x00\x $( printf '%02x' $t ) \x00\x00\x00\x $( printf '%02x' ` echo -n " $m " | wc -c` ) $m \x00\x00\x00\x00 $( printf '%08x' $w | sed 's/../\\x&/g' ) $( printf '%08x' $h | sed 's/../\\x&/g' ) $( printf '%08x' $d | sed 's/../\\x&/g' ) \x00\x00\x00\xff $( printf '%08x' ` stat -c '%s' " $i " ` | sed 's/../\\x&/g' ) " ; cat " $i " ) | base64 --wrap= 0) > i.meta
${ FFmpegBin } -y -i ${ source } -acodec copy -map 0:0 -map_metadata -1 -metadata title = " ${ title } " -metadata copyright = "Diffusée selon les termes d’ au moins une des licences suivantes : licence Art libre version 1.3 ou ultérieure http://artlibre.org/licence/lal/, licence Creative Commons By Sa version 2.0 ou ultérieure http://creativecommons.org/licenses/by-sa/2.0/fr/ et licence GNU FDL version 1.3 ou ultérieure http://www.gnu.org/licenses/fdl-1.3.html" -metadata artist = "April - Cause Commune" -metadata contact = " ${ url } " ${ fichiertemp }
${ FFmpegBin } -y -i ${ fichiertemp } -i i.meta -acodec copy -map 0:0 -map_metadata 1 ${ destination }
rm ${ fichiertemp }
rm i.meta