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).

#2 Re : Multimédia » youtube-dl télécharger 2 fluxs audio + 1 vidéo » 06-02-2021 19:46:21

#!/bin/bash
## https://www.youtube.com/watch?v=WaOKSUlf4TM

read -r -p "Copier l'URL ici : " url
if [[ -z "$url" ]]; then
    echo "Invalid input..."
    echo "Quit"
     exit 1
else

after_equal_sign=$( echo "$url" | cut -d "=" -f2- )
TITLE_VIDEO=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" "$after_equal_sign" )

if [ ! -f "$TITLE_VIDEO" ]; then
youtube-dl -f 'bestvideo[ext=mp4]' --output "%(title)s.%(ext)s" "$url"
else
echo "la vidéo est déjà présente"

fi


all=$(youtube-dl --list-formats "$url" | grep "audio only" | awk '{print$1}')

for n in $all; do youtube-dl -f $n --extract-audio --output $n".%(ext)s" "$url"
done


#FILES=$(find  -type f \( ! -name \*.mp4 \) | sed -e 's/.\///g' | awk '{ printf " -i "$0" "}')
FILES=$(find  -type f \( -iname \*.opus -o -iname \*.m4a \) | sed -e 's/.\///g' | awk '{ printf " -i "$0" "}')
MAP_ALL=$( find . -name "*.m4a" -o -name "*.opus" | sed -e 's/.\///g' | awk '{printf("%01d %s\n", NR, $0)}' | awk '{ printf " -map "$1" "}' )



ffmpeg -i "$TITLE_VIDEO" $FILES -map 0:v  $MAP_ALL  -c copy -y output.mkv

fi





Copier l'URL ici : https://www.youtube.com/watch?v=WaOKSUlf4TM
la vidéo est déjà présente
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 249-0.webm
[download] 100% of 877.56KiB in 00:04
[ffmpeg] Destination: 249-0.opus
Deleting original file 249-0.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 249-1.webm
[download] 100% of 889.24KiB in 00:07
[ffmpeg] Destination: 249-1.opus
Deleting original file 249-1.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 250-0.webm
[download] 100% of 1.13MiB in 00:04
[ffmpeg] Destination: 250-0.opus
Deleting original file 250-0.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 250-1.webm
[download] 100% of 1.14MiB in 00:07
[ffmpeg] Destination: 250-1.opus
Deleting original file 250-1.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 251-0.webm
[download] 100% of 2.26MiB in 00:14
[ffmpeg] Destination: 251-0.opus
Deleting original file 251-0.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 251-1.webm
[download] 100% of 2.27MiB in 00:15
[ffmpeg] Destination: 251-1.opus
Deleting original file 251-1.webm (pass -k to keep)
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 140-0.m4a
[download] 100% of 2.29MiB in 00:17
[ffmpeg] Post-process file 140-0.m4a exists, skipping
[youtube] WaOKSUlf4TM: Downloading webpage
[youtube] WaOKSUlf4TM: Refetching age-gated info webpage
[download] Destination: 140-1.m4a
[download] 100% of 2.29MiB in 00:14
[ffmpeg] Post-process file 140-1.m4a exists, skipping
ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[libdav1d @ 0x5625dea18740] libdav1d 0.8.1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Assassin’s Creed Valhalla - Story Trailer _ Ubisoft [NA].mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6av01mp41
    creation_time   : 2020-10-03T05:23:52.000000Z
  Duration: 00:02:28.43, start: 0.000000, bitrate: 9954 kb/s
    Stream #0:0(und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv, bt709), 3840x2160, 158 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (default)
    Metadata:
      creation_time   : 2020-10-03T05:23:52.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Input #1, ogg, from '249-0.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 46 kb/s
    Stream #1:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '140-1.m4a':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2020-09-29T19:22:33.000000Z
  Duration: 00:02:28.49, start: 0.000000, bitrate: 129 kb/s
    Stream #2:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 8 kb/s (default)
    Metadata:
      creation_time   : 2020-09-29T19:22:33.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Input #3, ogg, from '250-0.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 61 kb/s
    Stream #3:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Input #4, mov,mp4,m4a,3gp,3g2,mj2, from '140-0.m4a':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2020-09-29T19:22:33.000000Z
  Duration: 00:02:28.49, start: 0.000000, bitrate: 129 kb/s
    Stream #4:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 8 kb/s (default)
    Metadata:
      creation_time   : 2020-09-29T19:22:33.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Input #5, ogg, from '251-1.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 126 kb/s
    Stream #5:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Input #6, ogg, from '251-0.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 125 kb/s
    Stream #6:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Input #7, ogg, from '249-1.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 47 kb/s
    Stream #7:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Input #8, ogg, from '250-1.opus':
  Duration: 00:02:28.47, start: 0.007500, bitrate: 62 kb/s
    Stream #8:0(eng): Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Output #0, matroska, to 'output.mkv':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6av01mp41
    encoder         : Lavf58.45.100
    Stream #0:0(und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv, bt709), 3840x2160, q=2-31, 158 kb/s, 30 fps, 30 tbr, 1k tbn, 15360 tbc (default)
    Metadata:
      creation_time   : 2020-10-03T05:23:52.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
    Stream #0:2(eng): Audio: aac (LC) ([255][0][0][0] / 0x00FF), 44100 Hz, stereo, fltp, 8 kb/s (default)
    Metadata:
      creation_time   : 2020-09-29T19:22:33.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:3(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
    Stream #0:4(eng): Audio: aac (LC) ([255][0][0][0] / 0x00FF), 44100 Hz, stereo, fltp, 8 kb/s (default)
    Metadata:
      creation_time   : 2020-09-29T19:22:33.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:5(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
    Stream #0:6(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
    Stream #0:7(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
    Stream #0:8(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavf58.45.100
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
  Stream #2:0 -> #0:2 (copy)
  Stream #3:0 -> #0:3 (copy)
  Stream #4:0 -> #0:4 (copy)
  Stream #5:0 -> #0:5 (copy)
  Stream #6:0 -> #0:6 (copy)
  Stream #7:0 -> #0:7 (copy)
  Stream #8:0 -> #0:8 (copy)
Press [q] to stop, [?] for help
frame= 4453 fps=0.0 q=-1.0 Lsize=  193805kB time=00:02:28.46 bitrate=10693.6kbits/s speed= 173x    
video:180330kB audio:13069kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.210335%

 

#3 Re : Multimédia » youtube-dl télécharger 2 fluxs audio + 1 vidéo » 06-02-2021 09:07:45

Bonjour,

Sur cette vidéo :

https://www.youtube.com/watch?v=WaOKSUlf4TM


On peut procéder comme ça:
Dans un dossier dédié, tu ouvres un terminal et tu lances ces commandes :


youtube-dl -f 'bestvideo[ext=mp4]' --output "%(title)s.%(ext)s" https://www.youtube.com/watch?v=WaOKSUlf4TM
 




ça va te charger la vidéo sans audio, puis cette commande :


all=$(youtube-dl --list-formats https://www.youtube.com/watch?v=WaOKSUlf4TM | grep "audio only" | awk '{print$1}')
 



249-0 249-1 250-0 250-1 251-0 251-1 140-0 140-1



qui va cibler toutes les streams audio, puis :


for n in $all; do youtube-dl -f $n --extract-audio --output $n".%(ext)s" https://www.youtube.com/watch?v=WaOKSUlf4TM
done
 




140-0.m4a  
249-0.opus  
250-0.opus  
251-0.opus  
140-1.m4a  
249-1.opus  
250-1.opus  
251-1.opus
 



qui va te les télécharger (toutes)

FILES=$(find  -type f \( ! -name \*.mp4 \) | sed -e 's/.\///g' | awk '{ printf " -i "$0" "}')



-i 249-0.opus -i 140-1.m4a -i 250-0.opus -i 140-0.m4a -i 251-1.opus -i 251-0.opus -i 249-1.opus -i 250-1.opus




On mémorise les streams audios

MAP_ALL=$( find . -name "*.m4a" -o -name "*.opus" | sed -e 's/.\///g' | awk '{printf("%01d %s\n", NR, $0)}' | awk '{ printf " -map "$1" "}' )



-map 1 -map 2 -map 3 -map 4 -map 5 -map 6 -map 7 -map 8



On place les MAP

TITLE_VIDEO=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" WaOKSUlf4TM)



Assassin’s Creed Valhalla - Story Trailer _ Ubisoft [NA].mp4



On mémorise le titre de la vidéo mp4

Et on on lance cette dernière commande :


ffmpeg -i "$TITLE_VIDEO" $FILES -map 0:v  $MAP_ALL  -c copy -y output.mkv
 



Tu te retrouvera avec un mkv final comme ceci :


 mediainfo output.mkv
 




General
Unique ID                                : 126046244933065120815178053019026911769 (0x5ED39FAE0AADC47683367C39B1A4F219)
Complete name                            : output.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 189 MiB
Duration                                 : 2 min 28 s
Overall bit rate                         : 10.7 Mb/s
Writing application                      : Lavf58.45.100
Writing library                          : Lavf58.45.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : AV1
Format/Info                              : AOMedia Video 1
Format profile                           : Main@L5.0
Codec ID                                 : V_AV1
Duration                                 : 2 min 28 s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 30.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Title                                    : ISO Media file produced by Google Inc.
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio #1
ID                                       : 2
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #2
ID                                       : 3
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Title                                    : ISO Media file produced by Google Inc.
Language                                 : English
Default                                  : Yes
Forced                                   : No

Audio #3
ID                                       : 4
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #4
ID                                       : 5
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Title                                    : ISO Media file produced by Google Inc.
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #5
ID                                       : 6
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #6
ID                                       : 7
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #7
ID                                       : 8
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No

Audio #8
ID                                       : 9
Format                                   : Opus
Codec ID                                 : A_OPUS
Duration                                 : 2 min 28 s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Bit depth                                : 32 bits
Compression mode                         : Lossy
Delay relative to video                  : -7 ms
Writing library                          : Lavf58.45.100
Language                                 : English
Default                                  : No
Forced                                   : No
 



Voilà, c'est un début de script à étudier wink

#4 Re : Les logiciels libres » installer / désinstaller un logiciel libre » 20-12-2020 13:00:05

Bonjour,

on peut aussi après la compilation au niveau du make faire un checkinstall qui générera un paquet deb.
La désinstallation sera plus "propre" par le gestionnaire de paquets et donc pas besoin de garder le dossier de compilation pour un uninstall wink

En simple utilisteur :


./configure
make
checkinstall
 

#5 Re : Vos sites et projets perso » 3dminfographie » 18-12-2020 20:32:35

J'ai une GTX 780 Ti, c'est vraiment confortable . ( d'ou mon interrogation sur ce minumum )

J'ai aussi une GTX 1050 Ti, mais qui n'arrive même pas à la cheville de cette 780  ....  mais elle fait son job. wink

#6 Re : Vos sites et projets perso » 3dminfographie » 18-12-2020 18:50:53

damien a écrit :


Je dirait le minimum est une nvidia GTX2060 pour blender.



Bonjour,

au minimum ?

#7 Re : Multimédia » Gravure de DVD lisible par lecteur DVD » 16-12-2020 06:04:14

Caribou22 a écrit :


Voici un log d'erreur de création d'ISO



Un log d'erreurs ?

#8 Multimédia » swf convertion dans un autre format » 01-12-2020 21:23:23

golgot200
Réponses : 3
Bonsoir,

je voudrais convertir un fichier au format swf qui a a de petites animations quand je place ma souris dessus.
Je connais pas ce format (et surtout c'est pas pour moi )
Je ne trouve pas de programmes pour faire ça sous Linux.
J'ai vu qu'on pouvait le passer en html5 en gardant ses animations. Vous pourriez me conseiller un truc ?

#9 Re : Jeux » CAP - La bataille navale Pirate ! » 29-11-2020 19:25:55

captnfab a écrit :

Oui, le pkgbuild pour arch a été fait pour la 1.0alpha3, il n'a pas été mis à jour depuis mais essaie d'installer la dernière version quand même :-)
Je vais signaler le pb au packager.

@edit: voilà, le mainteneur a corrigé :-)



Impeccable, le jeux est installé sur Arch. Merci smile

#10 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 29-11-2020 13:04:40

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

 

#11 Re : Jeux » CAP - La bataille navale Pirate ! » 29-11-2020 12:55:16

vv222

cool !!! merci à toi wink

yay -S capbattleship-git





:: Vérification des conflits...
:: Vérification des conflits internes...
[Repo:5]  sdl2_mixer-2.0.4-5  sdl2_ttf-2.0.15-2  sdl2_image-2.0.5-2  portmidi-217-9  python-pygame-2.0.0-1
[Aur:1]  capbattleship-git-v1.0alpha2.r3.gb771f89-1

:: Téléchargement des PKGBUILD (1/1) : capbattleship-git
  1 capbattleship-git                (Fichiers de compilation existants)
==> Afficher les diffs ?
==> [N]Aucun [A]Tous [Ab]Annuler [I]nstallés [No]nInstallés ou (1 2 3, 1-3, ^4)
==>
:: (1/1) Lecture de SRCINFO : capbattleship-git
[sudo] Mot de passe de patrick :
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (5) portmidi-217-9  python-pygame-2.0.0-1  sdl2_image-2.0.5-2  sdl2_mixer-2.0.4-5  sdl2_ttf-2.0.15-2

Taille totale installée :  8,89 MiB

:: Procéder à l’installation ? [O/n]
 




Arfff une petite coquille :



Installing capbattleship script to /home/patrick/.cache/yay/capbattleship-git/pkg/capbattleship-git/usr/bin
mv: impossible d'évaluer '/home/patrick/.cache/yay/capbattleship-git/pkg/capbattleship-git/usr/bin/capbattleship.py': Aucun fichier ou dossier de ce type
==> ERREUR : Une erreur s’est produite dans package().
    Abandon…
erreur lors de la construction : capbattleship-git
 

#14 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 29-11-2020 10:43:47

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  
 

#15 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 28-11-2020 18:39:07

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

#16 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 28-11-2020 18:34:57

Ok smile

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

#17 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 28-11-2020 17:58:14

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"

#19 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 28-11-2020 17:23:47

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
 

#20 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 27-11-2020 11:42:00

Toulibre a écrit :



ça fonctionne bien mais avec quelques messages d'erreurs

[mp3 @ 0x55ec9447c840] Estimating duration from bitrate, this may be inaccurate


[mp3float @ 0x55ec9447ec00] invalid new backstep -1


Guessed Channel Layout for Input Stream #0.0 : stereo




Estimating duration from bitrate, this may be inaccurate


supprimé par l'utilisation de "lame --decode" au lieu de ffmpeg

mp3float @ 0x55ec9447ec00] invalid new backstep -1


De la même façon

Guessed Channel Layout for Input Stream #0.0 : stereo


supprimé par l'option :

ffmpeg -guess_layout_max 0 -i



wink

#21 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 27-11-2020 07:56:00

smile

Bonjour,
plutôt que d'utiliser ffmpeg pour le passage du mp3 en wav, je vais opter pour lame et son option --decode. Je pense que ça sera mieux au niveau des streamings mp3 qui n'ont pas de "durée" inscrite.

#22 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 26-11-2020 13:38:45

Salut Toulibre

Ces messages d'erreurs, tu n'en tiens pas compte. C'est au niveau de l'encodage avec ffmpeg et le mp3. J'ai les même messages wink

#23 Re : Multimédia » Streamripper (play/record + programmation) wav + cue + Titres.txt » 26-11-2020 12:01:56

Bonjour,

Voilà, à tester. Pour la partie diff programation c'est comme ça :

Pour aujourd'hui :

+0 days 13:00:05




Pour demain :

+1 days 13:00:05




Le script


#!/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)
tr -d '\0' < "$filename_cue" > data.cue
sed -i -e '1 s/^.*$/FILE "data.wav" WAVE/' data.cue
rm -f "$filename_cue"
ffmpeg -i "$filename" -acodec pcm_s16le -ar 44100 data.wav
rm -f "$filename"

}

TITLE_TXT () {

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

}


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

ffmpeg -i data.wav \
          -acodec pcm_s16le -ar 44100 \
          -af "afade=t=in:ss=0:d=3,afade=t=out:st=${times[*]} :d=3" \
          data-fade.wav
rm -f data.wav  
mv data-fade.wav data.wav


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
                         
}



FILE=stream.txt
FIND=$( find . -name "$FILE")
COUNT_PROG_FIND=$( find . -name "$FILE" | wc -l )
DIR_FILE_PROG_FIND=$( find . -name "$FILE" -printf '%h\n' )

 

if [ $COUNT_PROG_FIND -gt 1 ] ; then
echo  "Trop de fichiers, on fait le ménage"
for f in $FIND ; do rm "$f"; done
fi


if [ $COUNT_PROG_FIND == 1 ]; then
cd "$DIR_FILE_PROG_FIND"

diff=$(sed -n 1p stream.txt)
date=$(( $diff - `date +%s`))

fi

if [ -f $FILE ] && [[ "$diff" -gt `date +%s` ]]; then
echo ""
echo  "Une écoute est déjà programmée pour le :"
date  -d @"$diff"
echo ""


read -r -p "Garder cette programmation et lancer le décompte ? [Y/n/q] " input
case $input in
    [yY][eE][sS]|[yY])
echo ""
echo "Décompte ..."



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

./command_diff


exit 0

 ;;
    [nN][oO]|[nN])
    echo "OK, on supprime donc le dossier et les fichiers de cette programmation par choix."
   
#menage
deldir=$(cat file_saves_station_folder_date.txt)
rm -r "$deldir"

 ;;
    [qQ][uU][iI][tT]|[qQ])
echo ""
echo "On ignore et on continue ..."
echo ""
 ;;
esac


fi


if [ -f "$FILE" ] && [[ "$diff" -lt `date +%s` ]]; then
echo  "La programation n'est plus d'actualité, on supprime donc ce dossier inutile et ses fichiers."
   
#menage
deldir=$(cat file_saves_station_folder_date.txt)
rm -r "$deldir"



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;94mPlay\033[m"
echo -e "\e[3;32m2. \033[m \e[3;94mPlay + Record\033[m"
echo -e "\e[3;32m3. \033[m \e[3;94mPlay Diff\033[m"
echo -e "\e[3;32m4. \033[m \e[3;94mPlay Diff + Record\033[m"

echo -n "Play(1) or Play + Record(2) or Play Diff(3) or Play Diff + Record(4), 0 for exit: "
read -r  choice_of_use
echo





if [[ "$choice_of_use" == "1" ]]; then
   echo -e "\e[3;32mPlaying ...\033[m"

mpv "$stream" --no-resume-playback --no-save-position-on-quit  



fi



if [[ "$choice_of_use" == "2" ]]; then
   echo -e "\e[3;32mPlay + Record ...\033[m"

folder_date=$(date "+%s")
mkdir -p "$station/$folder_date"
readlink -m "$station/$folder_date" > "$station/$folder_date/file_saves_station_folder_date.txt"
DIRECTION=$(cat "$station/$folder_date/file_saves_station_folder_date.txt")


mpv "$stream" >/dev/null 2>&1 | \
streamripper "$stream" -a -A -s -d "$station/$folder_date" \
                  --codeset-filesys=UTF-8 \
                  --codeset-id3=UTF-8 \
                  --codeset-metadata=UTF-8 \
                  --codeset-relay=UTF-8 \
                  -u FreeAmp/2.x

(cd "$DIRECTION" || exit
WAVE
### on sort un listing des titres dans un fichier texte.
TITLE_TXT
FADE_IN_OUT_WAVE
    rm -f file_saves_station_folder_date.txt
)



fi


if [[ "$choice_of_use" == "3" ]]; then
echo -e "\e[3;32mProgramation de l'écoute:\033[m"
read -p "Entrer la date dans le format:  +J (un nombre) days HH:MM:SS " replay




folder_date=$(date "+%s" -d "$replay")
mkdir -p "$station/$folder_date"
readlink -m "$station/$folder_date" > "$station/$folder_date/file_saves_station_folder_date.txt"
DIRECTION=$(cat "$station/$folder_date/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"




#### Création de commande différée dans le script command_diff
{ 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 'date=$(( $diff - `date +%s`))';
echo '';
echo 'timeout --foreground $out_diff mpv "$url_diff" --no-resume-playback --no-save-position-on-quit';
} >> "$DIRECTION/command_diff"


chmod u+x "$DIRECTION/command_diff"



diff=$(date "+%s" -d "$replay")
echo $diff > "$DIRECTION/stream.txt"

echo $stream > "$DIRECTION/url.txt"
url_diff=$(sed -n 1p "$DIRECTION/url.txt")

echo $out > "$DIRECTION/out.txt"
out_diff=$(sed -n 1p "$DIRECTION/out.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 !!!"

rm -r "$DIRECTION"

timeout --foreground $out_diff mpv "$stream" --no-resume-playback --no-save-position-on-quit

exit 0



fi



if [[ "$choice" != 0 || "$choice" != "" ]] && [[ "$choice_of_use" == "4" ]]; then
mkdir -p "$station"

#### 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_date=$(date "+%s" -d "$replay")
mkdir "$station/$folder_date"
readlink -m "$station/$folder_date" > "$station/$folder_date/file_saves_station_folder_date.txt"
DIRECTION=$(cat "$station/$folder_date/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 ';

} >> "$DIRECTION/command_diff"


chmod u+x "$DIRECTION/command_diff"



diff=$(date "+%s" -d "$replay")
echo $diff > "$DIRECTION/stream.txt"

echo $stream > "$DIRECTION/url.txt"
url_diff=$(sed -n 1p "$DIRECTION/url.txt")

echo $out > "$DIRECTION/out.txt"
out_diff=$(sed -n 1p "$DIRECTION/out.txt")


length=$(awk '{print $0}' "$DIRECTION/out.txt" | sed 's/[^0-9]*//g')
echo $length > "$DIRECTION/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 !!!"
    rm -f "$DIRECTION/stream.txt"
    rm -f "$DIRECTION/url.txt"
    rm -f "$DIRECTION/out.txt"
    rm -f "$DIRECTION/command_diff"
    rm -f "$DIRECTION/length.txt"


timeout $out_diff streamripper $stream -a -A -s -d "$DIRECTION" \
                  --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 "$DIRECTION"  
WAVE
TITLE_TXT
FADE_IN_OUT_WAVE
menage

exit 0
)

fi


 

#24 Re : Multimédia » [tuto]Installation audio-recorder Debian Stretch » 26-11-2020 09:31:12

Bonjour,

et pourquoi pas simplement avec sox

apt install sox



et la commande :

sox -r 44100 -t alsa default TON_VINYL_RIP.wav

#25 Re : Débuter avec la ligne de commande » Lancer un bash avec une date "JJ/MM/AAAA" ? » 25-11-2020 20:46:25

Caille a écrit :

Croutons a écrit :

Tu veux récupérer l' affichage de %s de chaque jour partir de ta date de départ j'uqu'à la date d'aujourd'hui ?

Bonjour Croutons,

En fait j'avais posté des captures écrans sur un site sans avoir créé de compte avant, il était donc impossible de les supprimer
.



Bonsoir,

Tiens c'est marrant, moi j'avais un problème quasi similaire. Moi, j'avais un compte mais sur tdct s pix
J'avais une image que je voulais absolument supprimer, chose que j'ai faite. Mais à ma grande surprise, je me suis apperçu que l'image était toujours présente et pas moyen de faire quoi que soit après. J'ai donc décidé de supprimer mon compte en cochant bien "supprimer toutes images associées au compte .... et paf, toutes les images sont toujours présentes et pas moyen de faire de faire quoique ce soit.
J'ai réussi à contacter un responsable (que je ne citerai pas). Il a reconnu qu'un problème était survenu de leur part. Il m'a proposé de lui faire parvenir tous les liens (boulot fastidieux)  pour qu'il puisse les supprimer. Résultat, silence complet, plus de nouvelle. C'est bien cool de sa part.

Je suis curieux de voir comment tu vas procéder. Si tu y arrives, je peux te filer mes liens pour un petit rm dans les règles wink

Pied de page des forums

Propulsé par FluxBB