Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#101 27-11-2020 13:18:09

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Ça doit être plus fluide et clair dans le terminal maintenant smile
tu penses ajouter la séparation des morceaux bientôt ?

Hors ligne

#102 28-11-2020 18:23:47

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Bonjour,

une coquile c'est glissé dans le script et que je n'avais pas remarqué.
C'était au niveau de la suppression de la programmation encore valide et le choix de ne pas la garder. C'était fonctionnel mais pas beau. Donc, il ma fallu recommencer tout refaire le boulot ( trop fastidieux à corriger pour ma petite tête ) smile

Donc là, je me suis consacré qu'a une option : la partie programmation de l'enregistrement. C'est la plus chiante en faite smile

Donc dans ce test, il faut lancement du script, faire une programmation  à environ 2 minutes du départ puis, on ferme le terminal vite fait. On relance avant les 2 minutes et on voit si ça part. Ensuite on peut aussi relancer le script dans les 2 minutes, mais cette fois, quand il le propose, dire non je garde pas cette programmation et voir, une fois supprimer, la suite du job.



#!/bin/bash


WAVE () {

filename_cue=$(find -type f -name "*.cue" | xargs --null basename)
filename=$(find -type f \( -name "*.mp3" -o -name "*.ogg" -o -name "*.flac" \) -print0 | xargs --null basename)


lame --decode "$filename"
rm -f "$filename"
wav_filename=$(find -type f -name "*.wav" -print0 | xargs --null basename)
wav_name=$( echo "${wav_filename%.*}")


tr -d '\0' < "$filename_cue" > data.cue
rm -f "$filename_cue"
mv data.cue "$wav_name".cue  
sed -i -e '1 s/^.*$/FILE "'$wav_filename'" WAVE/' "$wav_name".cue


}

TITLE_TXT () {

grep -e 'TITLE' -e 'PERFORMER' "$wav_name".cue | \
                   awk '{for(x=1;x<=NF;x++)if($x~/TITLE/){sub(/TITLE/,++i)}}1' | \
                   sed '0~2G' \
                   >> "$wav_name".txt

}


FADE_IN_OUT_WAVE () {
data_wav_duration=$(ffmpeg -i "$wav_filename" 2>&1 | awk '/^  Duration/ { split($2, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1]}')
times=()
_t=$(ffmpeg -i "$wav_filename" 2>&1 | awk '/^  Duration/ { split($2, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] - 5 }')

times+=("$_t")

echo "${times[@]}" | sed 's/ /+/g' | bc

if [[ "$data_wav_duration" -gt 15 ]]; then

# "Guessed Channel Layout for Input Stream #0.0 : stereo"  : ffmpeg -guess_layout_max 0
ffmpeg -guess_layout_max 0 -i "$wav_filename" \
          -acodec pcm_s16le -ar 44100 \
          -af "afade=t=in:ss=0:d=3,afade=t=out:st=${times[*]} :d=3" \
          "FADE_$wav_filename"
rm -f "$wav_filename"  
mv "FADE_$wav_filename" "$wav_filename"


fi

}


menage () {
    rm -f stream.txt
    rm -f url.txt
    rm -f out.txt
    rm -f command_diff
    rm -f length.txt
    rm -f file_saves_station_folder_date.txt
                         
}


FIND=$( find . -name stream.txt)
COUNT_PROG_FIND=$( find . -name stream.txt | wc -l )
if [ $COUNT_PROG_FIND == 1 ]; then
#not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
compare=$( cat $FIND )
date=$(( $compare - `date +%s`))
echo  "Une écoute est déjà programmée pour le :"
date  -d @"$compare"
read -r -p "Garder cette programmation ? [Y/n] " keep
case $keep in
    [nN][oO]|[nN])

echo "Non, on supprime et on continue ..."
not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
rm -r "$keep"

 ;;
    [yY][eE][sS]|[yY])
   
echo ""
echo "On garde et on continue le décompte ..."
echo ""

  while [ "$compare" -ne `date +%s` ]; do
    echo -ne "  $(date -u --date @$(($compare - `date +%s`)) +%d_%H:%M:%S)\r";
    sleep 1
  done



echo "C'est parti !!!!!!!!!!!!!"
dir_command_diff=$( find . -name command_diff -printf '%h\n' )

( cd "$dir_command_diff"
./command_diff

WAVE
TITLE_TXT
FADE_IN_OUT_WAVE
menage

)


exit 0

 ;;
esac





fi



#### Radios.
echo "Mes radios:"
echo -e "\e[3;32m1. \033[m \e[3;94mOldies_but_goldies\033[m"
echo -e "\e[3;32m2. \033[m \e[3;94mRadio_Italo4You\033[m"
echo

echo -n "Entrer un choix, 0 pour quitter: "
read -r  choice
echo

#### le nombre doit correspondre au nombre de radios ci-dessus.
if [[ "$choice" -gt 2 ]]; then
    echo "Il n'y a pas autant de radios."
    echo "Quit"
    exit 1

fi


if [[ "$choice" == 1 ]]; then
stream="http://orion.shoutca.st:8248/stream"
station=Oldies_but_goldies


fi



if [[ "$choice" == 2 ]]; then
stream="http://s0.radiohost.pl:8018/stream"
station=Radio_Italo4You


fi


if [[ "$choice" == 0 ]]; then
    echo "OK, see you!"
    exit 1


fi



if [[ "$choice" == "" ]]; then
    echo "Invalid input..."
    echo "Quit"
    exit 1

fi



echo "Play/Play+Record or Play Diff/Play Diff+Record"

echo -e "\e[3;32m1. \033[m \e[3;94mProgrammer un enregistrement\033[m"


echo -n "Programmer un enregistrement(1), 0 for exit: "
read -r  choice_of_use
echo








if [[ "$choice" != 0 || "$choice" != "" ]] && [[ "$choice_of_use" == "1" ]]; then
#### Création de commande différée dans le script command_diff
echo -e "\e[3;32mProgramation de l'écoute + enregistrement:\033[m"
read -p "Entrer la date dans le format:  +J (un nombre) days HH:MM:SS " replay

folder_deferred=$(date "+%s" -d "$replay")
mkdir -p "$station/$folder_deferred"
readlink -m "$station/$folder_deferred" > "$station/$folder_deferred/file_saves_station_folder_date.txt"
deferred_program_dir=$(cat "$station/$folder_deferred/file_saves_station_folder_date.txt")





echo ""
echo -e "\e[32m   900  = \e[0m  0 heures 15 minutes"
echo -e "\e[32m  1800  = \e[0m  0 heures 30 minutes"
echo -e "\e[32m  2700  = \e[0m  0 heures 45 minutes"
echo -e "\e[32m  3600  = \e[0m  1 heures 00 minutes"
echo -e "\e[32m  4500  = \e[0m  1 heures 15 minutes"
echo -e "\e[32m  5400  = \e[0m  1 heures 30 minutes"
echo -e "\e[32m  6300  = \e[0m  1 heures 45 minutes"
echo -e "\e[32m  7200  = \e[0m  2 heures 00 minutes"
echo -e "\e[32m  8100  = \e[0m  2 heures 15 minutes"
echo -e "\e[32m  9000  = \e[0m  2 heures 30 minutes"
echo -e "\e[32m  9900  = \e[0m  2 heures 45 minutes"
echo -e "\e[32m 10800  = \e[0m  3 heures 00 minutes"
echo -e "\e[32m 11700  = \e[0m  3 heures 15 minutes"
echo -e "\e[32m 12600  = \e[0m  3 heures 30 minutes"

read -p "Pour une durée n(s): " out
echo ""
echo -e "\e[32m$out\e[0m secondes"



{ echo '#!/bin/bash';
echo '';
echo 'diff=$(sed -n 1p "stream.txt")';
echo 'url_diff=$(sed -n 1p "url.txt")';
echo 'out_diff=$(sed -n 1p "out.txt")';
echo 'length=$(sed -n 1p "length.txt")';
echo 'date=$(( $diff - `date +%s`))';
echo '';
echo 'timeout $out_diff streamripper $url_diff -a -A -s \';
echo '                  --codeset-filesys=UTF-8 \';
echo '                  --codeset-id3=UTF-8 \';
echo '                  --codeset-metadata=UTF-8 \';
echo '                  --codeset-relay=UTF-8 \';
echo '                  -u FreeAmp/2.x | \';
echo '                  mpv --length=$length $url_diff --no-resume-playback --no-save-position-on-quit ';

} >> "$deferred_program_dir/command_diff"


chmod u+x "$deferred_program_dir/command_diff"


diff=$(date "+%s" -d "$replay")
echo $diff > "$deferred_program_dir/stream.txt"
echo $stream > "$deferred_program_dir/url.txt"
url_diff=$(sed -n 1p "$deferred_program_dir/url.txt")
echo $out > "$deferred_program_dir/out.txt"
out_diff=$(sed -n 1p "$deferred_program_dir/out.txt")
length=$(awk '{print $0}' "$deferred_program_dir/out.txt" | sed 's/[^0-9]*//g')
echo $length > "$deferred_program_dir/length.txt"



date=$(( $diff - `date +%s`))
  while [ "$diff" -ne `date +%s` ]; do
    echo -ne "  $(date -u --date @$(($diff - `date +%s`)) +%d_%H:%M:%S)\r";
    sleep 1
  done

echo "C'est parti !!!"



timeout $out_diff streamripper $stream -a -A -s -d "$deferred_program_dir" \
                  --codeset-filesys=UTF-8 \
                  --codeset-id3=UTF-8 \
                  --codeset-metadata=UTF-8 \
                  --codeset-relay=UTF-8 \
                  -u FreeAmp/2.x | \
                  mpv --length=$length $stream --no-resume-playback --no-save-position-on-quit


(cd "$deferred_program_dir" || exit
WAVE
TITLE_TXT
FADE_IN_OUT_WAVE
menage

)

fi
 

Dernière modification par golgot200 (28-11-2020 18:24:36)

Hors ligne

#103 28-11-2020 18:37:46

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

le retour !

toulibre@toulibre:~/Téléchargements$ ./streamripper.sh
Une écoute est déjà programmée pour le :
samedi 28 novembre 2020, 17:39:00 (UTC+0100)
Garder cette programmation ? [Y/n] n
Non, on supprime et on continue ...
rm: impossible de supprimer 'n': Aucun fichier ou dossier de ce type
Mes radios:
1.  Oldies_but_goldies
2.  Radio_Italo4You

Entrer un choix, 0 pour quitter: 0

OK, see you!
toulibre@toulibre:~/Téléchargements$
 

Hors ligne

#104 28-11-2020 18:40:38

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

puis le retour une fois le délai dépassé ...

toulibre@toulibre:~/Téléchargements$ ./streamripper.sh
Une écoute est déjà programmée pour le :
samedi 28 novembre 2020, 17:39:00 (UTC+0100)
Garder cette programmation ? [Y/n] n
Non, on supprime et on continue ...
rm: impossible de supprimer 'n': Aucun fichier ou dossier de ce type
Mes radios:
1.  Oldies_but_goldies
2.  Radio_Italo4You

Entrer un choix, 0 pour quitter: 0

OK, see you!
toulibre@toulibre:~/Téléchargements$

Hors ligne

#105 28-11-2020 18:55:56

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Bizarre, je n'ai pas ces erreurs ... tout passe bien.. piges pas hmm

Hors ligne

#106 28-11-2020 18:58:14

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Arfff je fais une bourde là :

not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
rm -r "$keep"



c'est :

not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
rm -r "$not_keep"

Hors ligne

#107 28-11-2020 19:09:50

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

ok nickel sur le 1er temps

toulibre@toulibre:~/Téléchargements$ ./streamripper.sh
Une écoute est déjà programmée pour le :
samedi 28 novembre 2020, 18:08:00 (UTC+0100)
Garder cette programmation ? [Y/n] n
Non, on supprime et on continue ...
Mes radios:
1.  Oldies_but_goldies
2.  Radio_Italo4You

Entrer un choix, 0 pour quitter: 0

OK, see you!
toulibre@toulibre:~/Téléchargements$



nickel une fois le délai dépassé smile

toulibre@toulibre:~/Téléchargements$ ./streamripper.sh
Mes radios:
1.  Oldies_but_goldies
2.  Radio_Italo4You

Entrer un choix, 0 pour quitter:

Hors ligne

#108 28-11-2020 19:34:57

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Ok smile

Maintenant, je vais mettre l'option qui supprime automatiquement une programmation oubliée et périmée  wink

Hors ligne

#109 28-11-2020 19:39:07

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Tu as remarqué avec lame --decode, plus de messages "warning" comme avec ffmpeg ? smile

Dernière modification par golgot200 (28-11-2020 19:39:18)

Hors ligne

#110 29-11-2020 11:43:47

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Il serait pas mal, pour l'option de lecture, de garder dans un fichier texte daté les titres qui sont passés en écoute, non ?

En tout cas la commande est là :


mkdir -p "$station/Play"
mplayer -playlist "$stream" -vc null -vo null >> "$station/Play/Titres écoutés le $time.txt" | mpv "$stream" --no-resume-playback --no-save-position-on-quit  
 

Dernière modification par golgot200 (29-11-2020 11:44:52)

Hors ligne

#111 29-11-2020 12:04:31

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

oui oui c'est bien plus net dans le terminal avec lame !
à quel niveau je mets le dernier code que tu donnes ?
en remplacement de ces 3 lignes ?

mkdir -p "$station/$folder_deferred"
readlink -m "$station/$folder_deferred" > "$station/$folder_deferred/file_saves_station_folder_date.txt"
deferred_program_dir=$(cat "$station/$folder_deferred/file_saves_station_folder_date.txt")

Dernière modification par Toulibre (29-11-2020 12:06:13)

Hors ligne

#112 29-11-2020 13:43:21

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Non non, touche pas, je m'en occupe wink

Hors ligne

#113 29-11-2020 14:04:40

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.14.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

A tester dans tout les recoins:


#!/bin/bash

jour=$(date +%d-%m-%Y)
heure=$(date +%H:%M:%S)
time="$jour à $heure"  


WAVE () {

filename_cue=$(find -type f -name "*.cue" | xargs --null basename)
filename=$(find -type f \( -name "*.mp3" -o -name "*.ogg" -o -name "*.flac" \) -print0 | xargs --null basename)


lame --decode "$filename"
rm -f "$filename"
wav_filename=$(find -type f -name "*.wav" -print0 | xargs --null basename)
wav_name=$( echo "${wav_filename%.*}")


tr -d '\0' < "$filename_cue" > data.cue
rm -f "$filename_cue"
mv data.cue "$wav_name".cue  
sed -i -e '1 s/^.*$/FILE "'$wav_filename'" WAVE/' "$wav_name".cue


}

TITLE_TXT () {

grep -e 'TITLE' -e 'PERFORMER' "$wav_name".cue | \
                   awk '{for(x=1;x<=NF;x++)if($x~/TITLE/){sub(/TITLE/,++i)}}1' | \
                   sed '0~2G' \
                   >> "$wav_name".txt

}


FADE_IN_OUT_WAVE () {
data_wav_duration=$(ffmpeg -i "$wav_filename" 2>&1 | awk '/^  Duration/ { split($2, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1]}')
times=()
_t=$(ffmpeg -i "$wav_filename" 2>&1 | awk '/^  Duration/ { split($2, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] - 5 }')

times+=("$_t")

echo "${times[@]}" | sed 's/ /+/g' | bc

if [[ "$data_wav_duration" -gt 15 ]]; then

# "Guessed Channel Layout for Input Stream #0.0 : stereo"  : ffmpeg -guess_layout_max 0
ffmpeg -guess_layout_max 0 -i "$wav_filename" \
          -acodec pcm_s16le -ar 44100 \
          -af "afade=t=in:ss=0:d=3,afade=t=out:st=${times[*]} :d=3" \
          "FADE_$wav_filename"
rm -f "$wav_filename"  
mv "FADE_$wav_filename" "$wav_filename"


fi

}


menage () {
    rm -f stream.txt
    rm -f url.txt
    rm -f out.txt
    rm -f command_diff
    rm -f length.txt
    rm -f file_saves_station_folder_date.txt
                         
}


FIND=$( find . -name stream.txt)
COUNT_PROG_FIND=$( find . -name stream.txt | wc -l )


if [ $COUNT_PROG_FIND == 1 ]; then
compare=$( cat $FIND )
date=$(( $compare - `date +%s`))



fi


if [ $COUNT_PROG_FIND == 1 ] && [[ "$compare" -lt `date +%s` ]]; then
echo  "Cette programmation est passée de date, on supprime automatiquement."
not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
rm -r "$not_keep"



fi


if [ $COUNT_PROG_FIND == 1 ] && [[ "$compare" -gt `date +%s` ]]; then
echo  "Une écoute valide est programmée pour le :"
date  -d @"$compare"
read -r -p "Garder cette programmation ? [Y/n] " keep
case $keep in
    [nN][oO]|[nN])

echo "Non, on supprime et on continue ..."
not_keep=$(find "$(cd ..; pwd)" -name stream.txt -printf '%h\n')
rm -r "$not_keep"

 ;;
    [yY][eE][sS]|[yY])
   
echo ""
echo "On garde et on continue le décompte ..."
echo ""

  while [ "$compare" -ne `date +%s` ]; do
    echo -ne "  $(date -u --date @$(($compare - `date +%s`)) +%d_%H:%M:%S)\r";
    sleep 1
  done



echo "OK, on est parti ..."
dir_command_diff=$( find . -name command_diff -printf '%h\n' )

( cd "$dir_command_diff"
./command_diff

WAVE
TITLE_TXT
FADE_IN_OUT_WAVE
menage

)

exit 0
 ;;
esac


fi


#### Radios.
echo "Mes radios:"
echo -e "\e[3;32m1. \033[m \e[3;94mOldies_but_goldies\033[m"
echo -e "\e[3;32m2. \033[m \e[3;94mRadio_Italo4You\033[m"
echo

echo -n "Entrer un choix, 0 pour quitter: "
read -r  choice
echo

#### le nombre doit correspondre au nombre de radios ci-dessus.
if [[ "$choice" -gt 2 ]]; then
    echo "Il n'y a pas autant de radios."
    echo "Quit"
    exit 1

fi


if [[ "$choice" == 1 ]]; then
stream="http://orion.shoutca.st:8248/stream"
station=Oldies_but_goldies


fi



if [[ "$choice" == 2 ]]; then
stream="http://s0.radiohost.pl:8018/stream"
station=Radio_Italo4You


fi


if [[ "$choice" == 0 ]]; then
    echo "OK, see you!"
    exit 1


fi



if [[ "$choice" == "" ]]; then
    echo "Invalid input..."
    echo "Quit"
    exit 1


fi



echo "Play or Play + Record (Programmation)."
echo -e "\e[3;32m1. \033[m \e[3;94mPlay.\033[m"
echo -e "\e[3;32m2. \033[m \e[3;94mProgrammer un enregistrement.\033[m"


echo -n "Écouter une radio(1), Programmer un enregistrement(2), 0 for exit: "
read -r  choice_of_use
echo


if [[ "$choice" != 0 || "$choice" != "" ]] && [[ "$choice_of_use" == "1" ]]; then

mkdir -p "$station/Play"
mplayer -playlist "$stream" -vc null -vo null >> "$station/Play/Titres écoutés le $time.txt" | mpv "$stream" --no-resume-playback --no-save-position-on-quit  
#mpv "$stream" --no-resume-playback --no-save-position-on-quit


fi


if [[ "$choice" != 0 || "$choice" != "" ]] && [[ "$choice_of_use" == "2" ]]; then
#### Création de commande différée dans le script command_diff
echo -e "\e[3;32mProgramation de l'écoute + enregistrement:\033[m"
read -p "Entrer la date dans le format:  +J (un nombre) days HH:MM:SS " replay

folder_deferred=$(date "+%s" -d "$replay")
mkdir -p "$station/$folder_deferred"
readlink -m "$station/$folder_deferred" > "$station/$folder_deferred/file_saves_station_folder_date.txt"
deferred_program_dir=$(cat "$station/$folder_deferred/file_saves_station_folder_date.txt")





echo ""
echo -e "\e[32m   900  = \e[0m  0 heures 15 minutes"
echo -e "\e[32m  1800  = \e[0m  0 heures 30 minutes"
echo -e "\e[32m  2700  = \e[0m  0 heures 45 minutes"
echo -e "\e[32m  3600  = \e[0m  1 heures 00 minutes"
echo -e "\e[32m  4500  = \e[0m  1 heures 15 minutes"
echo -e "\e[32m  5400  = \e[0m  1 heures 30 minutes"
echo -e "\e[32m  6300  = \e[0m  1 heures 45 minutes"
echo -e "\e[32m  7200  = \e[0m  2 heures 00 minutes"
echo -e "\e[32m  8100  = \e[0m  2 heures 15 minutes"
echo -e "\e[32m  9000  = \e[0m  2 heures 30 minutes"
echo -e "\e[32m  9900  = \e[0m  2 heures 45 minutes"
echo -e "\e[32m 10800  = \e[0m  3 heures 00 minutes"
echo -e "\e[32m 11700  = \e[0m  3 heures 15 minutes"
echo -e "\e[32m 12600  = \e[0m  3 heures 30 minutes"

read -p "Pour une durée n(s): " out
echo ""
echo -e "\e[32m$out\e[0m secondes"



{ echo '#!/bin/bash';
echo '';
echo 'diff=$(sed -n 1p "stream.txt")';
echo 'url_diff=$(sed -n 1p "url.txt")';
echo 'out_diff=$(sed -n 1p "out.txt")';
echo 'length=$(sed -n 1p "length.txt")';
echo 'date=$(( $diff - `date +%s`))';
echo '';
echo 'timeout $out_diff streamripper $url_diff -a -A -s \';
echo '                  --codeset-filesys=UTF-8 \';
echo '                  --codeset-id3=UTF-8 \';
echo '                  --codeset-metadata=UTF-8 \';
echo '                  --codeset-relay=UTF-8 \';
echo '                  -u FreeAmp/2.x | \';
echo '                  mpv --length=$length $url_diff --no-resume-playback --no-save-position-on-quit ';

} >> "$deferred_program_dir/command_diff"


chmod u+x "$deferred_program_dir/command_diff"


diff=$(date "+%s" -d "$replay")
echo $diff > "$deferred_program_dir/stream.txt"
echo $stream > "$deferred_program_dir/url.txt"
url_diff=$(sed -n 1p "$deferred_program_dir/url.txt")
echo $out > "$deferred_program_dir/out.txt"
out_diff=$(sed -n 1p "$deferred_program_dir/out.txt")
length=$(awk '{print $0}' "$deferred_program_dir/out.txt" | sed 's/[^0-9]*//g')
echo $length > "$deferred_program_dir/length.txt"



date=$(( $diff - `date +%s`))
  while [ "$diff" -ne `date +%s` ]; do
    echo -ne "  $(date -u --date @$(($diff - `date +%s`)) +%d_%H:%M:%S)\r";
    sleep 1
  done

echo "C'est parti !!!"



timeout $out_diff streamripper $stream -a -A -s -d "$deferred_program_dir" \
                  --codeset-filesys=UTF-8 \
                  --codeset-id3=UTF-8 \
                  --codeset-metadata=UTF-8 \
                  --codeset-relay=UTF-8 \
                  -u FreeAmp/2.x | \
                  mpv --length=$length $stream --no-resume-playback --no-save-position-on-quit


(cd "$deferred_program_dir" || exit
WAVE
TITLE_TXT
FADE_IN_OUT_WAVE
menage

)

fi

 

Hors ligne

#114 29-11-2020 14:38:59

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

toulibre@toulibre:~/Téléchargements$ ./streamripper.sh
Mes radios:
1.  Oldies_but_goldies
2.  Radio_Italo4You

Entrer un choix, 0 pour quitter: 1

Play or Play + Record (Programmation).
1.  Play.
2.  Programmer un enregistrement.
Écouter une radio(1), Programmer un enregistrement(2), 0 for exit: 1


Couldn't resolve name for AF_INET6: orion.shoutca.st
Playing: http://orion.shoutca.st:8248/stream
 (+) Audio --aid=1 (mp3 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
File tags:
 icy-title: Leann Rimes - I Fall To Pieces [FWt]
Saturation: 1
A: 00:01:01 / 00:01:08 (90%) Cache:  6s+347KB
File tags:
 icy-title: The Spencer Davis Group - Keep On Running [G4T]

A: 00:01:42 / 00:01:44 (98%) Cache:  1s+76KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:00:58 / 00:01:50 (52%) Cache: 52s+2MB
File tags:
 icy-title: Leann Rimes - I Fall To Pieces [FWt]
A: 00:01:01 / 00:01:53 (54%) Cache: 51s+2MB
File tags:
 icy-title: The Spencer Davis Group - Keep On Running [G4T]
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+140KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+138KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+136KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+142KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+140KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+145KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:01:51 / 00:01:54 (97%) Cache:  2s+140KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:00:56 / 00:02:00 (47%) Cache: 63s+3MB
File tags:
 icy-title: Leann Rimes - I Fall To Pieces [FWt]
A: 00:01:01 / 00:02:03 (49%) Cache: 61s+3MB
File tags:
 icy-title: The Spencer Davis Group - Keep On Running [G4T]
A: 00:02:07 / 00:02:08 (98%) Cache:  1s+87KB
Cannot seek in this stream.
You can force it with '
--force-seekable=yes'.
A: 00:00:11 / 00:02:13 (8%) Cache: 121s+6MB
File tags:
 icy-title: Leann Rimes - I Fall To Pieces [FWt]
A: 00:00:04 / 00:02:26 (3%) Cache: 141s+7MB


Exiting... (Quit)


1 ère impression en lecture simple c'est super marrant, le clavier réagit aux commandes !
volume, contraste, luminosité, saturation, avancer, revenir en arrière, etc ...
j'ai pas testé le clavier en entier mais doit y en avoir pas mal
q pour quitter sympa aussi !

Edit : va falloir élaborer un wiki ...

Dernière modification par Toulibre (29-11-2020 14:43:49)

Hors ligne

#115 29-11-2020 15:00:36

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

Resolving orion.shoutca.st for AF_INET6...
Resolving orion.shoutca.st for AF_INET...
Connecting to server orion.shoutca.st[5.39.71.159]: 8248...

Name   : DI Radio Digital Impulse - Oldies but goldies
Genre  : Oldies
Website: http://www.di-radio.com
Public : yes
Bitrate: 320kbit/s
Cache size set to 320 KBytes

ICY Info: StreamTitle='Leann Rimes - I Fall To Pieces [FWt]';

ICY Info: StreamTitle='The Spencer Davis Group - Keep On Running [G4T]';

ICY Info: StreamTitle='The Rivingtons - Papa-Oom-Mow-Mow [GbI]';

ICY Info: StreamTitle='Dave Edmunds - I Hear You Knocking [FKy]';

ICY Info: StreamTitle='The Everly Brothers - All I Have to Do Is Dream [G8r]';



Le fichier txt de sortie après moins de 2 mn de lecture en testant les commandes au clavier smile

Hors ligne

#116 29-11-2020 18:11:39

Toulibre
Adhérent(e)
Lieu : Ganges, Cévennes
Distrib. : Debian 10.9
Noyau : Linux 4.19.0-16-amd64
(G)UI : xfce-thunar
Inscription : 10-08-2020
Site Web

Re : Streamripper (play/record + programmation) wav + cue + Titres.txt

ok

man mpv


pour les toutes les commandes dispos du clavier avec ton script ...

Hors ligne

Pied de page des forums