Descarga directa de Google Drive para archivos grandes

14

Estoy intentando En Google Drive, ¿cómo puede vincular directamente a "Descargar" un archivo zip y no ver el contenido? Pero no funciona. No estoy seguro de cómo repetir la pregunta. Descarga un HTML de advertencia "el archivo es demasiado grande para ser escaneado por antivirus" y cuando lo intento https://drive.google.com/uc?export=download&confirm=no_antivirus&id=todavía lo descarga.

Editar: intenté wget --save-cookies /tmp/cookie.txt --load-cookies /tmp/cookie.txty repetirlo, todavía no hay dados.

chx
fuente
1
¿Alguna vez resolviste esto? Se encuentra con el mismo problema con archivos más grandes.
Travis Reeder
No, me di por vencido en esto.
chx
Pregunta muy similar de Stack Overflow, con buenas respuestas: " wget / curl large file from google drive "
tanius

Respuestas:

4

Una cookie debe coincidir con el parámetro de url "confirmar", y se cambia en cada llamada.

Aquí hay una secuencia de comandos perl para descargar estos archivos de forma desatendida.

Con la URL de la página de advertencia de escaneo antivirus ( https://drive.google.com/uc?export=download&confirm=s5vl&id=XXX ) este código debería ser suficiente:

#!/usr/bin/perl
use strict;
my $TEMP='/tmp';my $COMMAND;my $confirm;
sub execute_command();
my $URL=shift;my $FILENAME=shift;
$FILENAME='gdown' if $FILENAME eq '';
execute_command();
if (-s $FILENAME < 100000) { # only if file isn't the download yet
    open fFILENAME, '<', $FILENAME;
    foreach (<fFILENAME>) {
        if (/confirm=([^;&]+)/) {
            $confirm=$1; last;   }    }
    close fFILENAME;
    $URL=~s/confirm=([^;&]+)/confirm=$confirm/;
    execute_command();    }
sub execute_command() {
    $COMMAND="wget --no-check-certificate --load-cookie $TEMP/cookie.txt --save-cookie $TEMP/cookie.txt \"$URL\"";
    $COMMAND.=" -O \"$FILENAME\"" if $FILENAME ne '';
    `$COMMAND`; return 1;    }
circulosmeos
fuente
Hice un script de python y mi cookie coincide con el parámetro de confirmación en la url. Sin embargo, no funciona: se me redirige a una página titulada "Iniciar sesión - Cuentas de Google".
Benjamin Toueg
Benjamin: puede que necesites procesar la url dos veces ... mira cómo el script llama execute_command () dos veces.
circulosmeos
6

Después de pasar muchas horas tratando de obtener un enlace de descarga directa que evita el análisis de virus, finalmente lo descubrí por accidente. Una URL en el siguiente formato junto con su clave API de Google omitirá el análisis de virus. No pude encontrar esto documentado en ninguna parte ( aquí está el documento oficial ), así que úselo bajo su propio riesgo ya que las actualizaciones futuras podrían romperlo. https://www.googleapis.com/drive/v3/files/fileid/?key=yourapikey&alt=media

harkirat singh
fuente
0

Prueba esto

Puede descargar estos archivos a su computadora en los siguientes formatos:

For documents: HTML, RTF, Word, Open Office, PDF, Text file.
For spreadsheets: CSV, HTML, ODS, PDF, XLS, TXT (only for a single sheet)
For presentations: PDF, PPTX, TXT
For drawings: PNG, JPEG, SVG, PDF

Descargue un archivo a su computadora desde Google Drive

Click the checkbox(es) next to the item(s) that you'd like to download.
Expand the More drop-down menu, and select Download...
Select a file format to which you'd like convert and download your item, such as Microsoft Word. If you select multiple items, they'll be

comprimido en un archivo .zip Haga clic en Descargar.

También puede descargar un archivo cuando lo esté viendo. Vaya al menú Archivo, apunte con el mouse a Descargar como y seleccione un formato de archivo.

Si el archivo total es superior a 2 GB, no creo que pueda descargarlo sin dividirlo en lotes.

Karan Raj Baruah
fuente
por desgracia, es un archivo binario :( ninguno de los anteriores.
chx
0

Ok, Google usa el siguiente formato de URL para el enlace de descarga final:

https://drive.google.com/uc?export=download&confirm=s5vl&id=XXX

Observe el parámetro de confirmación que parece cambiar cada vez que va al enlace original. ¿Quizás es un token de corta duración o una coincidencia de cookies o algo así?

Travis Reeder
fuente
0

Simplemente creo un javascript para que capture automáticamente el enlace y descargue y cierre la pestaña con la ayuda de tampermonkey .

// ==UserScript==
// @name         Bypass Google drive virus scan
// @namespace    SmartManoj
// @version      0.1
// @description  Quickly get the download link
// @author       SmartManoj
// @match        https://drive.google.com/uc?id=*&export=download*
// @grant        none
// ==/UserScript==

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
    await sleep(5000);
    window.close();
}

(function() {
    location.replace(document.getElementById("uc-download-link").href);
    demo();
})();
SmartManoj
fuente