Como baixar e-books na amazon (enquanto ainda é possível)


Pra quem tiver kindle, a amazon vai desativar a funcionalidade de baixar arquivos dos seus ebooks “comprados”. Pra baixar todos (ainda é possível, até terça dia 25):

  1. Vá na página https://www.amazon.com.br/hz/mycd/digital-console/contentlist/booksAll/dateDsc/
  2. cole o script abaixo no console, aperte Enter
  3. espere 1 minuto
  4. atualize a página (importante!!!)
  5. mude para a próxima página
  6. repita para todas as páginas

Aparentemente não pode sair da aba aberta, não testei muito. Se sua conta não estiver em português, pode precisar mudar coisa no script. Se a amazon mudar alguma coisa, pode ser que precise mudar o script. Esse código caiu do caminhão e eu não tenho responsabilidade nenhuma com o que acontecer com seu computador se você não souber o que tiver fazendo. Até onde eu sei compartilhar isso não é ilegal. Beijos.

Instruções de como executar javascript no navegador: https://developer.chrome.com/docs/devtools/console/javascript?hl=pt-br

let buttons = [...document.querySelectorAll('div')]
  .filter(el => el.textContent === 'Mais ações')
const generateRandomTime = () => Math.floor(Math.random() * 1_000) + 1_000
const waitABit = () => new Promise(resolve => setTimeout(resolve, generateRandomTime()))
const downloadBook = async (button) => {
  [...button.parentElement.querySelectorAll('div[tabindex="0"]')]
    .find(el => el.textContent === 'Baixar e transferir por USB')
    .click()
  await waitABit();
  document.querySelector('.DeviceDialogBox-module_container__1WOqR input[type="radio"]')
    .click()
  await waitABit();
  [...document.querySelectorAll('.DeviceDialogBox-module_container__1WOqR div')]
    .find(el => el.textContent === 'Baixar')
    .click()
  await waitABit();
  document.querySelector('#notification-close')
    .click();
  return waitABit();
};
(async () => {
  for (const button of buttons) {
    await downloadBook(button);
  }
})();