Blog Linux Avante

Como fazer backup do Google Fotos em seu computador com gphotos-sync

3 de julho de 2019

gphotos-sync é uma ferramenta de linha de comando para fazer backup do Google Fotos (incluindo álbuns separados) usando a API de biblioteca do Google Fotos para Linux, macOS e Windows. Use-o periodicamente para coletar todas as fotos adicionadas recentemente, mantendo um backup completo do Google Fotos em um servidor ou desktop.

Esta ferramenta é especialmente útil após o anúncio do Google de que o Google Fotos deixará de sincronizar com o Drive a partir de 10 de julho de 2019, o que significa que algumas ferramentas para fazer backup do Google Fotos em seu computador deixarão de funcionar (afetando Insync por exemplo, um cliente comercial do Google Drive que é executado em Linux, macOS e Windows).

gphotos-sync pode fazer backup de todas as fotos que um usuário enviou ao Google Fotos, bem como fotos adicionais criadas automaticamente usando o Google Fotos, como animações, panoramas, filmes, fotos aprimoradas ou colagens.

Este aplicativo é apenas para download/backup do Google Fotos. Ele não pode fazer upload de fotos para o Google Fotos.

A primeira sincronização completa cria 2 diretórios:

  • fotos, que contém todos os Google Fotos e vídeos organizados em uma estrutura de subpasta ano/mês (photo/YYYY/MM)
  • álbuns, que contém uma hierarquia de pastas que representa o conjunto de álbuns e álbuns compartilhados em sua biblioteca (albums/YYYY/MM Original Album Name). Como esta pasta contém as mesmas fotos das fotos/, as imagens nos álbuns/são links simbólicos para as fotos da fotos/

As execuções subsequentes de gphotos-sync com a mesma pasta raiz irão atualizar a cópia local com todas as novas fotos adicionadas ao Google Fotos desde a última digitalização. Ele não atualizará nenhuma foto modificada no Google Fotos, pois não há como descobrir a data de modificação das imagens do Google Fotos.

Também é importante notar que a API da biblioteca do Google Fotos retira os dados GPS das informações EXIF das imagens (há um problema em aberto para isso). A página gphotos-sync inclui uma solução alternativa para esse problema, explicada aqui, que eu não tentei.

Os recursos/opções do gphotos-sync incluem:

  • Baixa todas as suas imagens e vídeos do Google Fotos, incluindo aqueles criados automaticamente pelo Google Fotos (animações, panoramas, filmes, fotos aprimoradas ou colagens)
  • pega todas as novas fotos adicionadas à sua conta do Google Fotos desde a sincronização anterior
  • opcionalmente, apenas baixe e sincronize um único álbum (usando --album "ALBUM NAME")
  • compara as imagens em sua conta do Google Fotos com uma pasta local, como um backup anterior. A comparação não requer que os arquivos sejam organizados nas mesmas pastas, ela usa metadados nos arquivos, como data de criação e UID exif para combinar pares de itens (use --compare-folder "COMPARE_FOLDER") Veja este link para mais informações
  • exclui o banco de dados de índice e verifique tudo novamente (--flush-index)
  • opcionalmente, verifica novamente toda a biblioteca, ignorando a última data de verificação (--rescan)
  • verifica a existência de arquivos marcados como já baixados e baixe novamente os que estiverem faltando. Use isso se você tiver excluído alguns arquivos locais (--retry-download)
  • pula vídeos ao sincronizar (--skip-video)
  • define as datas de início e término dos arquivos a serem sincronizados no formato YYYY-MM-DD (--start-date START_DATE/--end-date END_DATE)
  • percorre o site do Google Fotos em busca de metadados de localização e adicione-os aos metadados EXIF dos arquivos locais (--get-locations)

Antes de usar o gphotos-sync, recomendo a leitura de problemas e limitações conhecidas.

Instalar e configurar gphotos-sync

Veja como instalar gphotos-sync no Windows.

Esta ferramenta usa a API do Google Fotos e requer que você crie um novo projeto do Google Cloud, habilite a API do Fotos para seu projeto e configure o OAuth 2.0 para ela, para que você possa usar sua própria chave de API, para evitar as limitações da API. Ainda existem limitações de API, mas dessa forma você será o único a usá-la. A primeira parte do guia abaixo é para instalar gphotos-sync, e a segunda parte sobre como usar sua própria chave de API com gphotos-sync (não funciona sem isso).

Instale gphotos-sync usando pipenv no Linux:

1. Instale o pip3

Debian, Ubuntu, Linux Mint, Pop!_OS, elementaryOS

Comandos para usar no terminal

sudo apt install python3-pip

Fedora

Comandos para usar no terminal

sudo dnf install python3-pip

Arch Linux, Manjaro

Comandos para usar no terminal

sudo pacman -S python-pip

openSUSE

Comandos para usar no terminal

sudo zypper install python3-pip

2. Exporte ~/.local/bin em PATH se ainda não o fez (é onde os executáveis para pacotes instalados usando pip3 são armazenados)

para Bash

Comandos para usar no terminal

echo "export PATH="$PATH:$HOME/.local/bin"" >> ~/.bashrc

. ~/.bashrc

para Zsh

Comandos para usar no terminal

echo "export PATH="$PATH:$HOME/.local/bin"" >> ~/.zshrc

. ~/.zsh

3. Instale o pipenv, crie uma pasta chamada gphotos-sync em seu diretório inicial e instale o gphotos-sync usando o pipenv

Comandos para usar no terminal

python3 -m pip install pipenv

mkdir ~/gphotos-sync

cd ~/gphotos-sync

pipenv install gphotos-sync

Agora você pode executar gphotos-sync, por exemplo:

Comandos para usar no terminal

pipenv run gphotos-sync

Você precisa executar este comando na pasta ~/gphotos-sync (então você teria que cd ~/gphotos-sync, então use pipenv run gphotos-sync). Você pode usar uma pasta/caminho diferente, mas lembre-se de substituir todas as ocorrências de ~/gphotos-sync por seu local personalizado ao longo deste guia.

Crie um projeto do Google Cloud, ative a API Photos Library e crie um ID de cliente OAuth

  1. Crie um novo projeto do Google Cloud

Acesse https://console.cloud.google.com/cloud-resource-manager e crie um novo projeto.

Para obter ajuda com esta etapa, consulte a documentação do Google Cloud para criar um projeto https://cloud.google.com/resource-manager/docs/creating-managing-projects

  1. Acesse https://console.cloud.google.com/apis/library?project=_, selecione um projeto, procure a API Photos Library e ative-a para este projeto.

A ajuda do Google Cloud para ativar APIs pode ser encontrada aqui: https://cloud.google.com/apis/docs/enable-disable-apis

  1. Acesse https://console.cloud.google.com/, certifique-se de que o projeto correto esteja selecionado no menu suspenso superior, clique em APIs e serviços na barra lateral e, por fim, clique em Credenciais em a barra lateral. Crie um ID de cliente Criar OAuth. Quando solicitado a escolher o tipo de aplicativo, selecione "Outro".

Você pode ver o procedimento completo para configurar o OAuth 2.0 com seu novo projeto em https://support.google.com/cloud/answer/6158849

  1. Depois de criar o ID do cliente, baixe-o como client_secret.json (renomeie-o, pois terá um nome mais longo) e salve-o no diretório de configuração do aplicativo:
  • ~/Library/Application Support/gphotos-sync/ no Mac OS X
  • ~/.config/gphotos-sync/ no Linux
  • C:\Users\<username>\AppData\Local\gphotos-sync\gphotos-sync\ no Windows

Agora é hora de executar o backup completo inicial do Google Fotos em seu computador. Para fazer isso, você precisará executar pipenv run gphotos-sync na pasta ~/gphotos-sync, seguido pelo caminho para onde a ferramenta deve baixar todas as suas fotos do Google. Por exemplo, para baixar todo o Google Fotos para a pasta ~/gphotos-sync, use:

Comandos para usar no terminal

cd gphotos-sync

pipenv run gphotos-sync ~/gphotos-sync

Na primeira vez que você executa gphotos-sync, é necessário autorizá-lo com sua conta do Google (Fotos), e um link será mostrado no terminal.

Você precisará copiar o link mostrado no terminal e colá-lo em um navegador da web. Ele mostrará a página que diz "Este aplicativo ainda não foi verificado pelo Google". Isso é normal, pois o aplicativo está usando sua chave de API e você não a enviou ao Google para verificação. Quando estiver nesta tela, clique em Advanced e em Go to Your_Gogle_Cloud_Project_Mame (unsafe). Clique em Allow quando solicitado, copie o código mostrado pela página do Google OAuth, cole-o de volta no terminal e pressione Enter.

Execute o mesmo comando (pipenv run gphotos-sync ~/gphotos-sync na pasta gphotos-sync no meu exemplo) toda vez que quiser atualizar o backup local do Google Fotos. É importante notar que você precisará esperar um pouco depois de enviar uma nova foto ao Google Fotos (por exemplo, usando a interface da web ou de seu telefone), pois ela não estará disponível imediatamente para download/backup.

Consulte a ajuda do aplicativo (pipenv run gphotos-sync --help) para uso avançado e mais opções.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda