Baixando memes no Android com apenas um botão
♫Tipos de carinha são…!♫
Irei apresentar minha gambiarra que atualmente uso para adquirir a maioria de meus memes no Android, uma idéia que surgiu da incoveniência que é baixar imagens e vídeos do Instagram. O método resume-se ao simples apertar de um botão, que aciona um script cuja função é fazer todo o trabalho sujo por nós 😈. E, com um pouco de leitura e pequenas modificações, os passos podem ser adaptados para outros sites/redes sociais que também não oferecem opções acessíveis para baixar mídias.
Nem preciso dizer que deve ser impossível replicar algo similar no iOS né? Não
gosto de queimar a língua, mas já sabemos da natureza desse sistema 👀. De
qualquer forma, esta é uma solução para um problema que só um anormal
acumulador digital como eu
precisaria.
Sendo o Android baseado em Linux, podemos utilizar o emulador de terminal Termux, que nos entrega um ambiente similar à aqueles encontrados em uma distro Linux (diferenças técnicas). Enquanto o Termux será o núcleo por trás de nossa operação, Termux-widget trará nossa feature principal da gambiarra: um pequeno botão ativador de scripts para usarmos na tela inicial.
Termux é tão magnífico que pretendo escrever um post apenas para ele. Aguardem…
Termux, setups e scripts
Para baixar o Termux junto com o widget, é recomendável seguir as instruções dos próprios desenvolvedores, atentando-se ao fato de que as builds existentes na Play Store não devem ser baixadas! Eu mesmo baixei tudo pelo F-Droid usando o aplicativo Droid-ify.
Independente do método que escolher, assim que iniciar o Termux, é recomendável atualizar o ambiente:
$ pkg upgrade
e então, instalar os pacotes que iremos precisar:
$ pkg install termux-api python
$ python -m pip install -U gallery-dl
termux-api
: contém utilidades essenciais para nosso script, comotermux-clipboard-get
;python
: necessário para usarmos o gerenciador de pacotespip
;gallery-dl
: o triunfo de nossa gambiarra - um programa que baixa imagens e vídeos de vários websites;
Após baixar os pacotes, devemos permitir o acesso do Termux ao armazenamento do seu Android:
$ termux-setup-storage
Permita o acesso através do pop-up e pronto.
Agora, devemos criar o diretório onde armazenaremos os arquivos de configuração
e cookies para o gallery-dl
, além do diretório onde o Termux-widget procura
por scripts:
$ mkdir -p ~/.config/gallery-dl ~/.shortcuts
Configurar ou não o gallery-dl
irá depender do seu uso. Na maior parte dos
casos, ele é perfeitamente funcional sem nenhum tipo de configuração. Porém, o
Instagram é uma das exceções - é necessário autenticação para fazer-lo
funcionar corretamente. Mais especificamente, preciso fornecer um arquivo contendo
cookies de um navegador logado no Instagram. Para saber quais websites requerem
este mesmo procedimento, junto com instruções mais adequadas, leia
esta seção aqui.
Existem extensões para navegadores que exportam os cookies no formato adequado,
mas no meu caso, nenhum dos arquivos foi devidamente reconhecido pelo
gallery-dl
. Tive sucesso apenas quando utilizei uma opção do próprio software
para exportar um arquivo adequado. Infelizmente, este passo em especial requer
um computador com o software instalado, pois o Termux obviamente não consegue
acessar os cookies de seu navegador no Android.
Em um computador com seu navegador logado no Instagram, baixe o gallery-dl
de acordo com as instruções oficiais
e então execute o comando:
$ gallery-dl --cookies-from-browser firefox/.instagram.com --cookies-export cookies.txt --no-download "{INSIRA AQUI LINK DE UM POST DO INSTA QUALQUER}"
Obviamente este comando deverá ser adaptado para coincidir com o seu browser, além do local onde queira exportar os cookies. Mais detalhes podem ser vistos aqui.
Com o arquivo em mãos, envie-o para seu smartphone e então abra o Termux e
copie-o para o diretório do gallery-dl
:
$ cp ~/storage/shared/{INSIRA LOCALIZAÇÃO DO ARQUIVO}/cookies.txt ~/.config/gallery-dl
Finalmente, é hora de editar o arquivo de configuração! Usando o nano
:
$ nano ~/.config/gallery-dl/config.json
# Cole o seguinte texto:
{
"extractor": {
"instagram": {
"cookies": "/data/data/com.termux/files/home/.config/gallery-dl/cookies.txt"
}
}
}
E agora, vamos colocar nosso script em ação:
$ nano ~/.shortcuts/gallery-dl.sh
# Cole o seguinte texto:
#!/bin/sh
PREFIX=/data/data/com.termux/files/usr/bin
PARAMS=--no-mtime
PATH=/storage/emulated/0/Download
URL=$($PREFIX/termux-clipboard-get)
$PREFIX/gallery-dl $PARAMS --directory $PATH $URL
- O parâmetro
--no-mtime
ignora o tempo de modificação original do arquivo. Uso isto pois prefiro meus memes organizados na ordem que baixei, mas caso queira em ordem de criação, então basta remover este parâmetro. - O
gallery-dl
irá armazenar as imagens no local que a variávelPATH
indica. Caso queira escolher outro diretório, basta mudar o caminho. - Note que o
$PREFIX
também encontra-se na variávelURL
. Sem um caminho absoluto, o script não irá encontrar otermux-clipboard-get
. - Obviamente ficarei mais que feliz caso sugiram melhoras no script 😁. Meu intuito foi deixar-lo limpo e portátil.
Depois, salve o arquivo e saia. Execute o seguinte comando para permitir a execução do script pelo Termux:
$ chmod +x ~/.shortcuts/gallery-dl.sh
O widget
Praticamente terminamos! Agora falta adicionar o widget na tela inicial:
O widget maior é mais adequado caso tenha múltiplos scripts
Selecione o script gallery-dl.sh
Voila!
Agora, basta copiar uma URL, clicar no widget na tela inicial e esperar o script realizar sua magia!