Estou tentando baixar um arquivo do google drive em um script e estou tendo alguns problemas para fazer isso. Os arquivos que estou tentando baixar estão aqui .
Pesquisei on-line extensivamente e finalmente consegui fazer o download de um deles. Eu obtive os UIDs dos arquivos e o menor (1,6 MB) é bem baixado, mas o arquivo maior (3,7 GB) sempre redireciona para uma página que pergunta se eu quero continuar com o download sem uma verificação de vírus. Alguém poderia me ajudar a superar essa tela?
Veja como consegui o primeiro arquivo funcionando -
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz
Quando eu executo o mesmo no outro arquivo,
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
Percebo na terceira a última linha do link, existe uma &confirm=JwkK
que é uma sequência aleatória de 4 caracteres, mas sugere que há uma maneira de adicionar uma confirmação ao meu URL. Um dos links que visitei sugeriu, &confirm=no_antivirus
mas não está funcionando.
Espero que alguém aqui possa ajudar com isso!
fonte
curl script
que você usou para baixar o arquivo degoogle drive
como eu sou incapaz de fazer download de um arquivo de trabalho (imagem) a partir deste roteirocurl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
gdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Respostas:
AVISO : Essa funcionalidade está obsoleta. Veja o aviso abaixo nos comentários.
Dê uma olhada nesta pergunta: Download direto do Google Drive usando a API do Google Drive
Basicamente, você precisa criar um diretório público e acessar seus arquivos por referência relativa com algo como
Como alternativa, você pode usar este script: https://github.com/circulosmeos/gdown.pl
fonte
export=download
para que ele deve ser bom para o futuro próximo, a menos que Google muda esse esquema URLJunho 2020
pip install gdown
O
file_id
deve ser algo como 0Bz8a_Dbh9QhbNU3SGlFaDgVocê pode obtê-lo clicando com o botão direito do mouse no arquivo e depois no link Obter compartilhável. Trabalhe apenas em arquivos de acesso aberto (quem tiver um link pode visualizar). Não funciona para diretórios. Testado no Google Colab. Funciona melhor no download de arquivos. Use tar / zip para torná-lo um único arquivo.
Exemplo: para baixar o arquivo leia-me deste diretório
fonte
export=download&
a partirgdown https://drive.google.com/uc?export=download&id=your_file_id
e ele funciona como charmeEu escrevi um trecho de código Python que baixa um arquivo do Google Drive, com um link compartilhável . Funciona a partir de agosto de 2017 .
O snippet não usa o gdrive , nem a API do Google Drive. Ele usa o módulo de solicitações .
Ao baixar arquivos grandes do Google Drive, uma única solicitação GET não é suficiente. Um segundo é necessário, e este possui um parâmetro de URL extra chamado confirm , cujo valor deve ser igual ao valor de um determinado cookie.
fonte
python snippet.py file_id destination
. Essa é a maneira correta de executá-lo? Porque se o destino for uma pasta, um erro será exibido. Se eu for resistente a um arquivo e o usar como destino, o trecho parecerá funcionar bem, mas não fará nada.$ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx
funcionou para mim. caso isso não funcione, você tem alguma solução? algum arquivo é criado?Você pode usar a ferramenta de linha de comando Linux / Unix de código aberto
gdrive
.Para instalá-lo:
Faça o download do binário. Escolha aquele que se adapta à sua arquitetura, por exemplo
gdrive-linux-x64
.Copie-o para o seu caminho.
Para usá-lo:
Determine o ID do arquivo do Google Drive. Para isso, clique com o botão direito do mouse no arquivo desejado no site do Google Drive e escolha "Obter link ...". Ele retornará algo como
https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H
. Obtenha a corda atrás da?id=
e copie-a para a área de transferência. Esse é o ID do arquivo.Faça o download do arquivo. Obviamente, use o ID do seu arquivo no seguinte comando.
Na primeira utilização, a ferramenta precisará obter permissões de acesso à API do Google Drive. Para isso, ele mostrará um link que você deve visitar em um navegador e, em seguida, receberá um código de verificação para copiar e colar na ferramenta. O download é iniciado automaticamente. Não há indicador de progresso, mas você pode observar o progresso em um gerenciador de arquivos ou em um segundo terminal.
Fonte: Um comentário de Tobi sobre outra resposta aqui.
Truque adicional: limitação de taxa. Para fazer o download com
gdrive
uma taxa máxima limitada (para não inverter a rede…), você pode usar um comando como este (pv
é o PipeViewer ):Isso mostrará a quantidade de dados baixados (
-b
) e a taxa de download (-r
) e limitará essa taxa a 90 kiB / s (-L 90k
).fonte
Como funciona?
Obter arquivo de cookie e código html com curl.
Canalize o html para grep e sed e procure o nome do arquivo.
Obtenha o código de confirmação do arquivo de cookie com o awk.
Finalmente, faça o download do arquivo com o cookie ativado, confirme o código e o nome do arquivo.
Se você não precisa do nome do arquivo, a variável curl pode adivinhar
-L Siga os redirecionamentos
-O Remote-name
-J Remote-header-name
Para extrair o ID do arquivo do google da URL, você pode usar:
OU
fonte
--insecure
opção a ambos os pedidos de curl para fazê-lo funcionar.Atualização em março de 2018.
Tentei várias técnicas fornecidas em outras respostas para baixar meu arquivo (6 GB) diretamente do Google drive para minha instância do AWS ec2, mas nenhuma delas funciona (pode ser porque é antiga).
Então, para informação de outras pessoas, aqui está como eu fiz isso com sucesso:
https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
Copie o script abaixo para um arquivo. Ele usa curl e processa o cookie para automatizar o download do arquivo.
Como mostrado acima, cole o FILEIDENTIFIER no script. Lembre-se de manter as aspas duplas!
myfile.zip
).sudo chmod +x download-gdrive.sh
.PS: Aqui está a essência do Github para o script acima: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424
fonte
-c
com--save-cookies
e-b
com--load-cookies
"
aspas${filename}
na última linha../download-gdrive.sh" Do not be like me and try to run the script by typing
download-gdrive.sh, the
. / `Parece ser obrigatório.Aqui está uma maneira rápida de fazer isso.
Verifique se o link está compartilhado e se parecerá com isso:
https://drive.google.com/open?id=FILEID&authuser=0
Em seguida, copie esse FILEID e use-o assim
fonte
wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
-r
bandeira dewget
. Por isso, éwget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
O comportamento padrão do google drive é verificar se há vírus nos arquivos, se o arquivo for muito grande, ele avisará o usuário e notificará o usuário de que o arquivo não pôde ser verificado.
No momento, a única solução alternativa encontrada foi compartilhar o arquivo com a web e criar um recurso da web.
Citação da página de ajuda do Google Drive:
Com o Drive, você pode tornar os recursos da Web, como arquivos HTML, CSS e Javascript, visíveis como um site.
Para hospedar uma página da web com o Drive:
Encontrado aqui: https://support.google.com/drive/answer/2881970?hl=en
Por exemplo, quando você compartilha um arquivo no Google Drive publicamente, o sharelink fica assim:
Em seguida, copie o ID do arquivo e crie um linke googledrive.com com a seguinte aparência:
fonte
O caminho fácil:
(se você precisar apenas de um download único)
Você deve terminar com algo como:
Depois dele no seu console, adicione
> my-file-name.extension
até o final (caso contrário, ele gravará o arquivo no seu console) e pressione enter :)fonte
Com base na resposta de Roshan Sethia
Maio 2018
Usando o WGET :
Crie um script de shell chamado wgetgdrive.sh como abaixo:
Dê as permissões corretas para executar o script
No terminal, execute:
por exemplo:
fonte
chmod 770 wgetgdrive.sh
--ATUALIZADA--
Para baixar o arquivo, primeiro obtenha o
youtube-dl
python aqui:youtube-dl: https://rg3.github.io/youtube-dl/download.html
ou instale-o com
pip
:ATUALIZAR:
Acabei de descobrir isso:
Clique com o botão direito do mouse no arquivo que deseja baixar em drive.google.com
Clique
Get Sharable link
Ativar
Link sharing on
Clique em
Sharing settings
Clique no menu suspenso superior para opções
Clique em Mais
Selecione
[x] On - Anyone with a link
Link de cópia
Copie o ID após
https://drive.google.com/file/d/
:Cole isso na linha de comando:
Cole o id atrás
open?id=
Espero que ajude
fonte
Nenhuma resposta propõe o que funciona para mim em dezembro de 2016 ( fonte ):
desde que o arquivo do Google Drive tenha sido compartilhado com aqueles que possuem o link e
{FileID}
seja a string por trás?id=
do URL compartilhado.Embora eu não tenha verificado com arquivos enormes, acredito que seja útil saber.
fonte
curl -L -o {filename} https://drive.google.com/uc?id={FileID}
trabalhou para mim, obrigado!A maneira mais fácil é:
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt
fonte
As respostas acima estão desatualizadas para abril de 2020, já que o Google Drive agora usa um redirecionamento para o local real do arquivo.
Trabalhando em abril de 2020 no macOS 10.15.4 para documentos públicos:
fonte
download-google-2
funciona para mim. Meu arquivo tem tamanho 3G. Obrigado @ danieltan95download-google-2
a última curvatura para issocurl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;
e agora pode retomar o download.Eu tive o mesmo problema com o Google Drive.
Veja como eu resolvi o problema usando os Links 2 .
Abra um navegador no seu PC, navegue até seu arquivo no Google Drive. Dê ao seu arquivo um link público.
Copie o link público para a área de transferência (por exemplo, clique com o botão direito do mouse em Copiar endereço do link)
Abra um terminal. Se você estiver baixando para outro PC / servidor / máquina, deverá fazer o SSH nesse ponto
Instale o Links 2 (método debian / ubuntu, use sua distro ou equivalente ao SO)
sudo apt-get install links2
Cole o link no seu terminal e abra-o com Links da seguinte forma:
links2 "paste url here"
Navegue até o link de download em Links usando as teclas de seta e pressione Enter
Escolha um nome de arquivo e ele fará o download do seu arquivo
fonte
Links
totalmente fez o truque! E é muito, muito melhor do quew3m
Use youtube-dl !
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890
Você também pode passar
--get-url
para obter um URL de download direto.fonte
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage
. talvez você tenha uma versão desatualizada doyoutube-dl
ou o formato de link não é reconhecido por ele por alguma razão ... Tente usar o formato acima substituindo o ID com o ID de arquivo do seu URL originalEu tenho usado o snippet de onda de @ Amit Chahar, que postou uma boa resposta neste tópico. Achei útil colocá-lo em uma função bash em vez de em um
.sh
arquivo separadoque pode ser incluído em, por exemplo, a
~/.bashrc
(depois de adquirido, é claro, se não for fornecido automaticamente) e usado da seguinte maneirafonte
Há um cliente multiplataforma de código aberto, escrito em Go: drive . É bastante agradável e completo, e também está em desenvolvimento ativo.
fonte
Todas as respostas acima parecem obscurecer a simplicidade da resposta ou têm algumas nuances que não são explicadas.
Se o arquivo for compartilhado publicamente, você poderá gerar um link de download direto apenas conhecendo o ID do arquivo. O URL deve estar no formato " https://drive.google.com/uc?id=[FILEID}&export=download ". Funciona a partir de 22/11/2019. Isso não requer que o destinatário efetue login no Google, mas exige que o arquivo seja compartilhado publicamente.
No seu navegador, navegue para drive.google.com.
Clique com o botão direito do mouse no arquivo e clique em "Obter um link compartilhável"
Edite o URL para que ele fique no seguinte formato, substituindo "[FILEID]" pelo ID do seu arquivo compartilhado:
https://drive.google.com/uc?id=[FILEIDorgeous&export=download
Esse é o seu link de download direto. Se você clicar nele no navegador, o arquivo será "enviado" para o navegador, abrindo a caixa de diálogo de download, permitindo salvar ou abrir o arquivo. Você também pode usar este link nos seus scripts de download.
Portanto, o comando curl equivalente seria:
fonte
Google Drive can't scan this file for viruses. <filename> is too large for Google to scan for viruses. Would you still like to download this file?
Eu não consegui fazer o script perl do Nanoix funcionar, ou outros exemplos de curl que eu já havia visto, então comecei a pesquisar na API em python. Isso funcionou bem para arquivos pequenos, mas os arquivos grandes sufocaram o RAM disponível, então encontrei outro código de chunking interessante que usa a capacidade da API para fazer o download parcial. Gist here: https://gist.github.com/csik/c4c90987224150e4a0b2
Observe o pouco sobre o download do arquivo client_secret json da interface da API para o diretório local.
Fontefonte
Aqui está um pequeno script bash que escrevi que faz o trabalho hoje. Ele funciona em arquivos grandes e também pode retomar arquivos parcialmente buscados. São necessários dois argumentos, o primeiro é o file_id e o segundo é o nome do arquivo de saída. As principais melhorias em relação às respostas anteriores aqui são que ele funciona em arquivos grandes e precisa apenas de ferramentas normalmente disponíveis: bash, curl, tr, grep, du, cut e mv.
fonte
Isso funciona a partir de novembro de 2017 https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db
fonte
Depois de brincar com esse lixo. Encontrei uma maneira de baixar meu arquivo doce usando as ferramentas de desenvolvedor do chrome.
Ele mostrará a solicitação no console "Rede"
Clique com o botão direito do mouse -> Copiar -> Copiar como Ondulação
-o
para criar um arquivo exportado.curl 'https://docs.google.com/spreadsheets/d/1Cjsryejgn29BDiInOrGZWvg/export?format=xlsx&id=1Cjsryejgn29BDiInOrGZWvg' -H 'authority: docs.google.com' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (X..... -o server.xlsx
Resolvido!
fonte
Aqui está uma solução alternativa para obter arquivos de download do Google Drive para o meu shell do Google Cloud Linux.
googledrive.com/host/[ID]
wget https://googledrive.com/host/[ID]
mv [ID] 1.zip
descompacte 1.zip
nós vamos pegar os arquivos.
fonte
Encontrei uma solução funcional para isso ... Basta usar o seguinte
fonte
Existe uma maneira mais fácil.
Instale o cliget / CURLWGET a partir da extensão firefox / chrome.
Faça o download do arquivo no navegador. Isso cria um link curl / wget que lembra os cookies e cabeçalhos usados durante o download do arquivo. Use este comando em qualquer shell para fazer o download
fonte
a maneira mais fácil de baixar arquivos do google drive, você também pode baixar arquivos no colab
Então
ou
Documento https://pypi.org/project/gdown/
fonte
Maio 2018 TRABALHANDO
Olá, com base nesses comentários ... eu crio um bash para exportar uma lista de URL do arquivo URLS.txt para um URLS_DECODED.txt e usado em algum acelerador como o flashget (eu uso o cygwin para combinar windows e linux)
O spider de comando foi introduzido para evitar o download e obter o link final (diretamente)
Comande GREP HEAD e CUT, processe e obtenha o link final, é baseado no idioma espanhol, talvez você possa ser a porta para o IDIOMA INGLÊS
echo -e "$URL_TO_DOWNLOAD\r"
provavelmente o \ r é apenas cywin e deve ser substituído por um \ n (quebra de linha)**********user***********
é a pasta do usuário*******Localización***********
está no idioma espanhol, limpe os astericos e deixe a palavra em inglês Localização e adapte os números THE HEAD e CUT para a abordagem apropriada.fonte
Você só precisa usar o wget com:
PD. O arquivo deve ser público.
fonte
O skicka é uma ferramenta cli para fazer upload, baixar arquivos de acesso a partir de um drive do google.
exemplo -
fonte