Instagram Shell

Publicado por Marcos Oliveira (última atualização em 05/12/2018)

[ Hits: 3.102 ]

Homepage: http://terminalroot.com.br/

Download instagram




Script para baixar múltiplas imagens, vídeos e álbuns do Instagram de maneira rápida e fácil.

  



Esconder código-fonte

#!/usr/bin/env bash
# author:   Marcos Oliveira <contato@terminalroot.com.br>
# license:  GPLv3

INSTAVERSION="${0##*/} - version: 1.0 - Download instagram pictures, albums and videos."

usage(){
  cat <<EOF
usage: ${0##*/} [options] [file/url ...]

 Options:

  -v,--version  Print version
  -h,--help     Show this help message
  -f,--file     Get urls from file

 Examples:

  instagram https://www.instagram.com/p/BnrplkmhY0T/
  instagram https://www.instagram.com/p/BnrplkmhY0T/ https://www.instagram.com/p/CnrpmmmhY0X/ # ...
  instagram -f file.txt

 * Where the file must have the urls that have Instagram images and/or videos, they can be on each line, 
either separated or with blanks, ... they can not be stuck together.
  
EOF

}

[[ -z "$1" ]] && echo -e "Inform the url.\nUse: ${0##*/} --help" && exit 1


instagram(){

   _pg=$(mktemp)

   wget "$1" -O "$_pg" 2>/dev/null

   if [[ "$(grep 'mp4' $_pg)" ]]; then
   
      _arq=$(sed -n '/mp4/{p;q;}' "$_pg" | sed 's/.*content..//g;s/\".*//g')
      
      echo -ne 'Downloading...\r'
      wget "$_arq" 2>/dev/null
      
   else
   
      _arq=$(sed 's/https/\n&/g' "$_pg" | sed 's/jpg.*/jpg/g' | egrep -o '^http.*jpg$' | sed -r '/[0-9]+x[0-9]+/d' | sort | uniq | grep -o '.*e35.*')
      
      _num=$(sed 's/https/\n&/g' "$_pg" | sed 's/jpg.*/jpg/g' | egrep -o '^http.*jpg$' | sed -r '/[0-9]+x[0-9]+/d' | sort | uniq | grep -o '.*e35.*' | wc -l)
      
      _start=1
      
      while [[ "$_start" -le "$_num" ]]; do
      
         echo -ne "Baixando...\r"
         wget $(echo $_arq | awk "{print \$$_start}") 2>/dev/null
         
         let _start=_start+1
         
      done
      
   fi

}

fileinsta(){

   _tmpfile=$(mktemp)
   sed '/^$/d' "$1" > "$_tmpfile"
   sed -i ':a ; $!N ; s/\n/ /g ; ta' "$_tmpfile"
   $0 $(cat $_tmpfile)

}



while [[ "$1" ]]; do

   case "$1" in
   
   -v|--version) echo $INSTAVERSION && exit 0 ;;
   -h|--help) usage && exit 0 ;;
   
   -f|--file) 
      
      shift
      
      if [[ "$(egrep -v '^https://(www.)?instagram.com/[a-z]+/[_a-zA-Z0-9-]+.*(/)?$' $1 2>&-)" || ! -f "$1" ]]; then
         echo 'Invalid file.'
         exit 1
      else      
         fileinsta "$1"   
         exit 0
      fi
      
   ;;
   
   *) 
      if [[ "$1" =~ ^https://(www.)?instagram.com/[a-z]+/[_a-zA-Z0-9-]+.*(/)?$ ]]; then
         instagram "$1"
      else
         echo "Invalid parameter: '$1'"
         exit 1
      fi   
   ;;
   
   esac
   
   shift
done

Scripts recomendados

Repasse de parâmetros de um script a outro

Copiar subdiretório presente em vários diretórios

Script de Instalação de Layer7 no CentOS 6.0

Montagem fácil de pendrive

Backup de vários servidores, diferenciado a rotina pela aplicação


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts