Téléchargement direct de Google Drive pour les gros fichiers

14

J'essaie Dans Google Drive, comment pouvez-vous créer un lien direct vers "Télécharger" un fichier zip et ne pas afficher le contenu? mais ça ne marche pas. Je ne sais pas trop comment répéter la question. Il télécharge un fichier HTML «trop gros pour être analysé par un antivirus» et lorsque j'essaye, https://drive.google.com/uc?export=download&confirm=no_antivirus&id=il le télécharge toujours.

Edit: j'ai essayé de le wget --save-cookies /tmp/cookie.txt --load-cookies /tmp/cookie.txtrépéter, toujours pas de dés.

chx
la source
1
Avez-vous déjà compris cela? Rencontrer le même problème avec des fichiers plus gros.
Travis Reeder
Non, j'ai abandonné.
chx
Question très similaire de Stack Overflow, avec de bonnes réponses: " wget / curl large file from google drive "
tanius

Réponses:

4

Un cookie doit correspondre au paramètre d'URL "confirmer" et il est modifié à chaque appel.

Voici un script perl pour télécharger ces fichiers sans surveillance.

Avec l'URL de la page d'avertissement de l'analyse antivirus ( https://drive.google.com/uc?export=download&confirm=s5vl&id=XXX ), ce code devrait suffire:

#!/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
la source
J'ai créé un script python et mon cookie correspond au paramètre confirm dans l'url. Cependant, cela ne fonctionne pas: je suis redirigé vers une page intitulée "Connexion - Comptes Google".
Benjamin Toueg
Benjamin: vous devrez peut-être traiter l'url deux fois ... regardez comment le script appelle execute_command () deux fois.
circulosmeos
6

Après avoir passé de nombreuses heures à essayer d'obtenir un lien de téléchargement direct qui contourne l'analyse antivirus, je l'ai finalement compris par accident. Une URL dans le format ci-dessous avec votre clé API Google contournera l'analyse antivirus. Je n'ai pu trouver cela documenté nulle part ( voici le document officiel ), donc utilisez-le à vos risques et périls car les futures mises à jour pourraient le casser. https://www.googleapis.com/drive/v3/files/fileid/?key=yourapikey&alt=media

harkirat singh
la source
0

Essayez ceci

Vous pouvez télécharger ces fichiers sur votre ordinateur dans les formats suivants:

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

Téléchargez un fichier sur votre ordinateur depuis 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

compressé dans un fichier .zip Cliquez sur Télécharger.

Vous pouvez également télécharger un fichier lorsque vous le visualisez. Accédez au menu Fichier, pointez votre souris sur Télécharger en tant que et sélectionnez un format de fichier.

Si le fichier total est supérieur à 2 Go, je ne pense pas que vous serez en mesure de télécharger sans se décomposer en lots.

Karan Raj Baruah
la source
hélas, c'est un fichier binaire :( ni l'un ni l'autre.
chx
0

Ok, Google utilise le format URL suivant pour le lien de téléchargement final:

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

Remarquez le paramètre de confirmation qui semble changer à chaque fois que vous accédez au lien d'origine. Peut-être que c'est un jeton éphémère ou une correspondance de cookie ou quelque chose?

Travis Reeder
la source
0

Je crée simplement un javascript pour qu'il capture automatiquement le lien et télécharge et ferme l'onglet avec l'aide 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
la source