imageDownloader
Publicado por Guilherme Moreira de Oliveira (última atualização em 24/03/2026)
[ Hits: 61 ]
Homepage: https://rapoelho.com.br/
Eu tenho um problema: Por vezes eu gosto de uma imagem que vi no Twitter e afins e quero baixar e organizar aquelas imagens. Com isso, me veio uma ideia: Por que não fazer um Script que baixa a imagem pela URL da imagem e renomeia ela com as informações nas URLs dos posts? E assim eu fiz.
Esse script precisa do YAD para o diálogo e o Curl para baixar as imagens.
E aqui tem mais detalhes de como ele funciona: https://rapoelho.com.br/posts/image-downloader/
#!/bin/bash
tempImg="/tmp/imagedownloader.txt"
picFolder="$(xdg-user-dir PICTURES)"
idFolder="$picFolder/ImageDownloader"
clearVariables () {
urlImage=""
urlPost=""
filename=""
rm $tempImg
}
downloadImage () {
clearVariables
yad --title="Image Downloader" --text="Favor, entrar com detalhes" \
--form --separator="\n" \
--field="URL da Imagem" \
--field="URL da Postagem" \
--width=400 --center > $tempImg
## Retirando Linhas Vazias do Arquivo
sed -i '/^$/d' $tempImg
## Definindo Variáveis
urlImage="$(head -n 1 $tempImg)"
urlPost="$(tail -n 1 $tempImg)"
if ! [[ -z `echo $urlPost | grep "x.com"` ]]; then
author="$(echo $urlPost | cut -d '/' -f4)" ## Separando o Nome do Autor do Tuíte
## O Twitter tem dois tipos finais para as URLs dos tuítes: "?s=20" e "/photo/1".
if [[ -z `echo $urlPost | grep "photo"` ]]; then
idImage="$(echo $urlPost | cut -d '/' -f6 | cut -d"?" -f1)" ## Separando o ID da Imagem, com o separador sendo o "?"
else
idImage="$(echo $urlPost | cut -d '/' -f6)" ## Separando o ID da Imagem, com o separador sendo o "/"
fi
fileExt="$(echo $urlImage | cut -d '/' -f5 | cut -d '&' -f1 | cut -d '=' -f2)"
filename="$author-Twitter-$idImage.$fileExt" ## Juntando tudo num Nome de Arquivo
elif ! [[ -z `echo $urlPost | grep "bsky.app"` ]];then
author="$(echo $urlPost | cut -d '/' -f5 | cut -d '.' -f1)"
idImage="$(echo $urlPost | cut -d '/' -f7)"
fileExt="$(echo $urlImage | cut -d '@' -f2)"
filename="$author-bsky-$idImage.$fileExt"
elif ! [[ -z `echo $urlPost | grep "pinterest"` ]];then
idImage="$(echo $urlPost | cut -d '/' -f5)"
fileExt="$(echo $urlImage | cut -d '/' -f8 | cut -d '.' -f2)"
filename="pinterest-$idImage.$fileExt"
elif ! [[ -z `echo $urlPost | grep "furaffinity"` ]];then
author="$(echo $urlImage | cut -d '/' -f5)"
idImage="$(echo $urlPost | cut -d '/' -f5)"
fileExt="$(echo $urlImage | cut -d '/' -f7 | cut -d '.' -f3)"
filename="$author-FurAffinity-$idImage.$fileExt"
elif ! [[ -z `echo $urlPost | grep "deviantart"` ]];then
author="$(echo $urlPost | cut -d '/' -f4)"
idImage="$(echo $urlPost | cut -d '/' -f6)"
fileExt="$(echo $urlImage | cut -d '/' -f10 | cut -d '.' -f2 | cut -d '?' -f1)"
filename="$author-deviantArt_$idImage.$fileExt"
elif ! [[ -z `echo $urlPost | grep "facebook"` ]];then
idImage="$(echo $urlPost | cut -d '=' -f2 | cut -d '&' -f1)"
fileExt="$(echo $urlImage | cut -d '/' -f6 | cut -d '?' -f1 | cut -d '.' -f2)"
filename="Facebook-$idImage.$fileExt"
fi
if ! [[ -z "$filename" && -z "$urlImage" ]]; then
echo -e "\n## Baixando $filename..."
curl -o $idFolder/$filename $urlImage
fi
printf "%s" "$*" "$filename" | cut -d '.' -f1 | xclip -selection clipboard
sleep 3
continue
}
continue () {
yad --center -title="Image Downloader" \
--image="dialog-question" \
--text="Deseja Continuar?" \
--button="Sim:0" \
--button="Não:1"
ret=$?
if [[ $ret -eq 0 ]]; then
downloadImage
elif [[ $ret -eq 1 ]]; then
exit
else
echo "O Image Downloader foi fechado."
fi
}
downloadImage
Configuramdo proxy/Squid com Dialog
Assistindo vídeo na TV e controlando no monitor com o xine
Verificar status de carga da bateria do notebook
Nenhum comentário foi encontrado.
Vale a pena ter mais de uma interface grafica no seu Linux?
Estrutura e Funcionamento de um Ebuild no Gentoo Linux
Instalação e Configuração do Void com Cinnamon
Montagem pré automática de HD externo usb em NTFS não funciona no Debian Trixie - Solução
Guia de instalação do Gentoo Linux com Cinnamon (UEFI, LUKS2, Btrfs)









