google sürücüden wget / curl büyük dosya


306

Bir komut dosyasında google sürücüden bir dosya indirmeye çalışıyorum ve bunu yaparken biraz sorun yaşıyorum. İndirmeye çalıştığım dosyalar burada .

Çevrimiçi olarak kapsamlı bir şekilde baktım ve sonunda bunlardan birini indirmeyi başardım. Dosyaların UID'lerini aldım ve daha küçük olanı (1.6MB) indirmeler iyi, ancak daha büyük dosya (3.7GB) her zaman virüs taraması olmadan indirmeye devam etmek isteyip istemediğimi soran bir sayfaya yönlendiriyor. Birisi o ekranı geçmeme yardımcı olabilir mi?

İlk dosyayı nasıl çalıştıracağım -

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz

Aynı dosyayı diğer dosyada çalıştırdığımda,

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz

Aşağıdaki çıktıyı alıyorum - resim açıklamasını buraya girin

Bağlantıdaki üçüncü son satırda, &confirm=JwkKrastgele bir 4 karakter dizesi var, ancak URL'ime bir onay eklemek için bir yol olduğunu gösteriyor. Ziyaret ettiğim bağlantılardan biri önerdi &confirm=no_antivirusama işe yaramıyor.

Umarım burada birisi bu konuda yardımcı olabilir!


Bu komut dosyasından çalışan bir dosyayı (resim) curl scriptindiremediğim için dosyayı indirmek için kullandığınız lütfen verebilir misinizgoogle drivecurl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
Kasun Siyambalapitiya

Kabul edilen cevaba bakın. Gdown.pl betiğini kullandımgdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Arjun

2
Kaydırmaktan korkmayın! Bu cevap tek seferde indirmek için çok güzel bir python betiği sağlar.
Ciprian Tomoiagă

./gdrive indir [FILEID] [- bir klasör ise yineleyici] belirli bir URL'ye erişmenizi ve bir jeton kodunu kopyalamanızı ister.
roj4s

Yanıtlar:


59

UYARI : Bu işlev kullanımdan kaldırılmıştır. Yorumlarda aşağıdaki uyarıya bakın.


Şu soruya bir göz atın: Google Drive API'sını kullanarak Google Drive'dan doğrudan indirme

Temel olarak bir genel dizin oluşturmanız ve dosyalarınıza,

wget https://googledrive.com/host/LARGEPUBLICFOLDERID/index4phlat.tar.gz

Alternatif olarak, bu komut dosyasını kullanabilirsiniz: https://github.com/circulosmeos/gdown.pl


5
başka bir iyi yol linux komut satırı aracı "gdrive" kullanmaktır github.com/prasmussen/gdrive
Tobi

1
Nanolx'un perl betiğini gdurl.com'da oluşturulan google drive permalink ile birlikte kullanabildim - Teşekkürler!
jadik

14
UYARI: Google Drive'daki web barındırma desteği kullanımdan kaldırılmıştır. "31 Ağustos 2015'ten itibaren, Google Drive'da kullanıcılar ve geliştiriciler için web barındırma hizmeti kullanımdan kaldırılacak. Google Apps müşterileri, googledrive.com/host aracılığıyla içerik sunarken bu özelliği 31 Ağustos 2016 tarihine kadar bir yıl boyunca kullanmaya devam edebilir. / doc kimliği kullanımdan kaldırılacak. " googleappsupdates.blogspot.com/2015/08/…
chrish

9
Ne yazık ki 2018'den bu yana artık işe yaramıyor.
Calimo

2
gdown.pl benim için de harika çalıştı. Komut dosyasına hızlı bir bakış, bu API'yi kullanmadığını gösterir, bir parametre ile yeni bir URL oluşturur, bu export=downloadnedenle google bu URL düzenini değiştirmedikçe öngörülebilir gelecek için iyi olmalıdır
Ben Baron

236

Haziran 2020

file_id0Bz8a_Dbh9QhbNU3SGlFaDg gibi görünmelidir

Dosyayı sağ tıklatıp Paylaşılabilir bağlantıyı alabilirsiniz. Yalnızca açık erişim dosyalarında çalışır (Bağlantısı olan herkes Görüntüleyebilir). Dizinler için çalışmaz. Google Colab'da test edildi. Dosya indirmede en iyi şekilde çalışır. Tek bir dosya yapmak için tar / zip komutunu kullanın.

Örnek: benioku dosyasını bu dizinden indirmek için

gdown https://drive.google.com/uc?id=0B7EVK8r0v71pOXBhSUdJWU1MYUk

9
Sadece kaldırmak export=download&gelen gdown https://drive.google.com/uc?export=download&id=your_file_idve çekicilik gibi çalışır
Saravanabalagi Ramachandran

8
Bu Temmuz 2018'de çalıştı! Dosyayı paylaşmayı unutmayın ve siz bağlantısına ulaşan drive.google.com/open?id=FILE_ID sadece "uc" ve basitçe gdown ile "açık" yerine drive.google.com/uc?id=FILE_ID
simo23

7
Gdown kullanarak Gdrive'dan nasıl klasör indirebiliriz?
user1

7
Ağustos 2019'dan itibaren çalışmıyor. Hata: "İzin reddedildi: drive.google.com/uc?id=0B7EVK8r0v71pWEZsZE9oNnFzTm8 'Bağlantıya sahip olan herkes' ile ilgili izni değiştirmeniz gerekebilir?" Ve genel olarak indirilebilir CelebA veri kümesi, bu yüzden tamam olmalı. İndirme bağlantısını 'paylaşılabilir bağlantı al' seçeneğini tıklayarak edindim ve sonra 'bağlantı paylaşma' ve 'bağlantıya sahip olan herkes görüntüleyebilir' dedi. Bu yüzden izin zaten verildi gibi görünüyor, hata izin reddedildiğini söylüyor. Denemek istiyorsanız ev sahibi site: mmlab.ie.cuhk.edu.hk/projects/CelebA.html
Kristof

6
Bu işe yarayan yarım düzineden tek çözüm bu. İlkine yükseltilmesi gerekiyor. : Ben sadece gelen 'paylaşılan bağlantı' değiştirmek için gereken drive.google.com/open?id=XXXX için drive.google.com/uc?id=XXXX
deprekate

194

Paylaşılabilir bir bağlantı verildiğinde Google Drive'dan bir dosya indiren bir Python snippet'i yazdım . Ağustos 2017 itibariyle çalışır .

Kesik kullanmaz GDrive , ne de Google Drive API'sı. İstekler modülünü kullanır .

Google Drive'dan büyük dosyalar indirirken, tek bir GET isteği yeterli değildir. İkincisi gereklidir ve bunun , değeri belirli bir çerezin değerine eşit olması gereken onay adı verilen ekstra bir URL parametresi vardır .

import requests

def download_file_from_google_drive(id, destination):
    def get_confirm_token(response):
        for key, value in response.cookies.items():
            if key.startswith('download_warning'):
                return value

        return None

    def save_response_content(response, destination):
        CHUNK_SIZE = 32768

        with open(destination, "wb") as f:
            for chunk in response.iter_content(CHUNK_SIZE):
                if chunk: # filter out keep-alive new chunks
                    f.write(chunk)

    URL = "https://docs.google.com/uc?export=download"

    session = requests.Session()

    response = session.get(URL, params = { 'id' : id }, stream = True)
    token = get_confirm_token(response)

    if token:
        params = { 'id' : id, 'confirm' : token }
        response = session.get(URL, params = params, stream = True)

    save_response_content(response, destination)    


if __name__ == "__main__":
    import sys
    if len(sys.argv) is not 3:
        print("Usage: python google_drive.py drive_file_id destination_file_path")
    else:
        # TAKE ID FROM SHAREABLE LINK
        file_id = sys.argv[1]
        # DESTINATION FILE ON YOUR DISK
        destination = sys.argv[2]
        download_file_from_google_drive(file_id, destination)

Parçacığı çalıştırıyorum python snippet.py file_id destination. Bu onu çalıştırmanın doğru yolu mu? Çünkü hedef bir klasörse hata atıyorum. Bir dosyayı zorlarsam ve bunu bir hedef olarak kullanırsam snippet iyi çalışıyor gibi görünür, ancak hiçbir şey yapmaz.
Manfredo

2
@Manfredo, örneğin $ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx benim için çalıştığı için dosyayı kaydetmek istediğiniz dosya adına ihtiyacınız var. bu işe yaramazsa, verilen herhangi bir çıkışınız var mı? herhangi bir dosya oluşturuluyor mu?
Jeff

1
@CiprianTomoiaga tqdm Python modülünü kullanarak ilerleme çubuğunun% 90'ında çalışıyorum. Bir gist yaptım: gist.github.com/joshtch/8e51c6d40b1e3205d1bb2eea18fb57ae . Maalesef% ilerleme durumunu ve tahmini tamamlanma süresini hesaplamak için ihtiyacınız olan toplam dosya boyutunu almanın güvenilir bir yolunu bulamadım.
joshtch

Ayrıca, istek modülü google sürücülerine erişmek için ne tür bir kimlik doğrulama kullanır? OAuth? Örneğin, yukarıdaki kodunuzda bu nerede ele alınır - request-oauthlib.readthedocs.io/en/latest/… ?
tauseef_CuriousGuy

7
Bu harika! Drive_File_ID için bir ipucu: https // drive.google.com / file / d / "drive_File_ID" / view - https ~~ dosya / d / ve / indirme bağlantısının görünümü arasında.
Jaeyoung Lee

70

Açık kaynaklı Linux / Unix komut satırı aracını kullanabilirsiniz gdrive.

Yüklemek için:

  1. İkili dosyayı indirin . Örneğin, mimarinize uygun olanı seçingdrive-linux-x64.

  2. Yolunuza kopyalayın.

    sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
    sudo chmod a+x /usr/local/bin/gdrive;
    

Kullanmak için:

  1. Google Drive dosya kimliğini belirleyin. Bunun için Google Drive web sitesinde istediğiniz dosyayı sağ tıklayın ve "Bağlantı Al…" seçeneğini belirleyin. Gibi bir şey dönecektir https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H. Arkasındaki dizeyi edinin ve ?id=panonuza kopyalayın. Dosyanın kimliği bu.

  2. Dosyayı indir. Elbette, aşağıdaki komut yerine dosyanızın kimliğini kullanın.

    gdrive download 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

İlk kullanımda, aracın Google Drive API'sına erişim izinleri alması gerekir. Bunun için size bir tarayıcıda ziyaret etmeniz gereken bir bağlantı gösterecek ve daha sonra araca kopyalayıp yapıştırmak için bir doğrulama kodu alacaksınız. İndirme işlemi otomatik olarak başlar. İlerleme göstergesi yok, ancak bir dosya yöneticisinde veya ikinci terminalde ilerlemeyi gözlemleyebilirsiniz.

Kaynak: Tobi'nin buradaki başka bir cevabına yaptığı bir yorum .

 

Ek numara: hız sınırlayıcı. İle indirmek için gdrive(ağını bataklık değil ...) sınırlı maksimum hızda, böyle bir komutu kullanabilirsiniz ( pvolan PipeViewer ):

gdrive download --stdout 0B7_OwkDsUIgFWXA1B2FPQfV5S8H | \
  pv -br -L 90k | \
  cat > file.ext

Bu, indirilen veri miktarını ( -b) ve indirme hızını ( -r) gösterir ve bu hızı 90 kiB / s ( -L 90k) ile sınırlar.


hata iletisi: "Kimliği Doğrulanmamış Kullanım için Günlük Sınır Aşıldı. Sürekli kullanım için kayıt gerekiyor.", kod: 403
Nianliang

@Nianliang Henüz deneyimlemedim, ama bir tahmin: Genel kullanıma açık bir dosyayı indirmek için gdrive'ı kullandınız, bu yüzden ilk kullanımda kimlik doğrulaması istemezsiniz. İlk olarak herkese açık olmayan bir dosyayı deneyin, kimlik doğrulamanın başarılı olduğundan emin olun ("İlk kullanımda…" yanıtında açıklandığı gibi). Yardımcı oldu mu?
tanius

3
Doğrulama kodu alınamıyor. "Bu uygulama için Google ile geçici olarak devre dışı bırakıldı Bu uygulama, Google Oturum Açma özelliğini kullanmak için henüz Google tarafından doğrulanmadı" hatasını alın.
useranon

1
Burada aynı hata mesajı: "Google Oturum Açma özelliğini kullanmak için bu uygulama henüz Google tarafından doğrulanmadı."
gebbissimo

1
@useranon: Bu çözümü deneyin: github.com/gdrive-org/gdrive/issues/533#issuecomment-596336395 , bir google hizmet hesabı oluşturmanız ve dosyayı / klasörü bu hizmet hesap adresiyle paylaşmanız gerekir. Yaptım. 17.04.2020 itibarıyla çalışıyor!
whyisyoung

53
ggID='put_googleID_here'  
ggURL='https://drive.google.com/uc?export=download'  
filename="$(curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" | grep -o '="uc-name.*</span>' | sed 's/.*">//;s/<.a> .*//')"  
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"  
curl -Lb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}" -o "${filename}"  

O nasıl çalışır?
Curl ile çerez dosyası ve html kodu alın.
Boru gt ve sed için html ve dosya adını arayın.
Awk ile çerez dosyasından onay kodunu alın.
Son olarak, çerez etkinken dosyayı indirin, kodu ve dosya adını onaylayın.

curl -Lb /tmp/gcokie "https://drive.google.com/uc?export=download&confirm=Uq6r&id=0B5IRsLTwEO6CVXFURmpQZ1Jxc0U" -o "SomeBigFile.zip"

Dosya adı değişkenine ihtiyacınız yoksa değişken kıvırmak bunu tahmin edebilir
-L Yönlendirmeleri takip et
-O Remote-name
-J Remote-header-name

curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" >/dev/null  
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"  
curl -LOJb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}" 

URL'den google dosya kimliğini çıkarmak için şunları kullanabilirsiniz:

echo "gURL" | egrep -o '(\w|-){26,}'  
# match more than 26 word characters  

VEYA

echo "gURL" | sed 's/[^A-Za-z0-9_-]/\n/g' | sed -rn '/.{26}/p'  
# replace non-word characters with new line,   
# print only line with more than 26 word characters 

Çok iyi yapmışsın. Diğer tüm cevaplar başarısız olduğunda 5GB + dosyasındaki virüs uyarısından kurtuldum.

1
Bu müthiş. --insecureÇalışmasını sağlamak için her iki kıvırmak isteklerine seçeneği eklemek zorunda kaldım.
Taylor R

@lapinpt RESUME işlevini nasıl eklerim?
steven7mwesigwa

Dosyaya herkese açık bir bağlantımız varsa bir şekilde google kimliğinden kurtulabilir miyiz?
oarfish

42

Mart 2018 itibariyle güncelleme.

Dosyamı (6 GB) doğrudan Google Drive'dan AWS ec2 örneğime indirmek için diğer yanıtlarda verilen çeşitli teknikleri denedim, ancak hiçbiri çalışmıyor (eski oldukları için olabilir).

Yani, başkalarının bilgisi için, bunu başarıyla yaptım:

  1. İndirmek istediğiniz dosyayı sağ tıklayın, paylaş'ı tıklayın, bağlantı paylaşımı bölümü altında "bu bağlantıya sahip olan herkes düzenleyebilir" i seçin.
  2. Bağlantıyı kopyalayın. Şu biçimde olmalıdır:https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
  3. FILEIDENTIFIER kısmını bağlantıdan kopyalayın.
  4. Aşağıdaki komut dosyasını bir dosyaya kopyalayın. Curl kullanır ve dosyanın indirilmesini otomatikleştirmek için çerezi işler.

    #!/bin/bash
    fileid="FILEIDENTIFIER"
    filename="FILENAME"
    curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null
    curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}
    
  5. Yukarıda gösterildiği gibi, FILEIDENTIFIER'ı betiğe yapıştırın. Çift tırnak tutmak unutmayın!

  6. FILENAME yerine dosya için bir ad girin. Çift tırnakları saklamayı ve uzantıyı FILENAME içine eklemeyi unutmayın (örneğin, myfile.zip).
  7. Şimdi, dosyayı kaydedin ve terminalde bu komutu çalıştırarak dosyayı yürütülebilir yapın sudo chmod +x download-gdrive.sh.
  8. Komut dosyasını "./download-gdrive.sh" komutunu kullanarak çalıştırın.

Not: Yukarıda verilen komut dosyası için Github özeti: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424


wget için değiştirmek -cile --save-cookiesve -bile--load-cookies
untore

3
bunun benim için çalıştığını doğruladı 👍, netlik için biraz düzenledi
Jeff Atwood

1
Ocak 2019'da çalışıyor. Son satırda "alıntılar eklemem gerekiyordu ${filename}.
Jimbo

> ./download-gdrive.sh" Do not be like me and try to run the script by typing Download-gdrive.sh komut dosyasını kullanarak komut dosyasını çalıştırın , the . / `Zorunlu görünüyor.
Ambroise Rabier

Mayıs 2019'da çalışıyor
Kshitij Bajracharya

29

İşte bunu yapmanın hızlı bir yolu.

Bağlantının paylaşıldığından emin olun ve aşağıdaki gibi görünecektir:

https://drive.google.com/open?id=FILEID&authuser=0

Ardından, bu DOSYAYI kopyalayın ve şu şekilde kullanın

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME

2
Merhaba, Cevabınız için teşekkürler. Paylaştığım bağlantıdaki dosyalara bakarsanız, dosyalar paylaşılırken bağlantıdaki 'authuser = 0' etiketinin olmadığını görürsünüz. Yönteminiz sağlanan dosyalar üzerinde çalışmadı! Arjun
Arjun

2
Herkese açık erişim ile bile denemedim, bu sadece bağlantı paylaşımlı dosyalar için iyi çalıştı. wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
Şunun

2018 itibariyle çalışmıyor, dosya yerine virüsten koruma taraması web sayfası alıyorum.
Calimo

7
-rBayrakla birlikte kullanıldığında 2018'de antivirüs tarayıcısını atlıyor wget. Yani öylewget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Artem Pelenitsyn

1
10/2019 itibariyle benim için çalıştı ve üzerinde çalışan neredeyse hiçbir yardımcı uygulama olmayan çalışan bir Docker kapsayıcısına bir dosya almak için mükemmel bir çözümdü.
ammills01

23

Google sürücüsünün varsayılan davranışı, dosya büyükse dosyaları virüslere karşı taramaktır, kullanıcıdan istenir ve dosyanın taranamadığını bildirir.

Şu anda bulduğum tek çözüm, dosyayı web ile paylaşmak ve bir web kaynağı oluşturmaktır.

Google Drive yardım sayfasından alıntı:

Drive ile HTML, CSS ve Javascript dosyaları gibi web kaynaklarını web sitesi olarak görüntülenebilir hale getirebilirsiniz.

Bir web sayfasını Drive ile barındırmak için:

  1. Drive.google.com adresinde Drive'ı açın ve bir dosya seçin.
  2. Paylaş'ı tıklayın üst kısmındaki düğmesini .
  3. Gelişmiş'i tıklayınPaylaşım kutusunun sağ alt köşesindeki .
  4. Değiştir ... 'i tıklayın.
  5. Web üzerinde Açık - Genel'i seçin ve Kaydet'i tıklayın .
  6. Paylaşım kutusunu kapatmadan önce, "Paylaşım bağlantısı" nın altındaki alandaki URL'den doküman kimliğini kopyalayın. Belge kimliği, URL'deki eğik çizgiler arasında büyük ve küçük harf ve rakam dizesidir.
  7. "Www.googledrive.com/host/[doc id] gibi görünen URL'yi paylaşın; burada [doc id] yerine 6. adımda kopyaladığınız doküman kimliği gelir
    . Artık herkes web sayfanızı görüntüleyebilir.

Burada bulundu: https://support.google.com/drive/answer/2881970?hl=tr

Örneğin, Google Drive'da bir dosyayı herkese açık olarak paylaştığınızda, keskin bağlantı şöyle görünür:

https://drive.google.com/file/d/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U/view?usp=sharing

Sonra dosya kimliğini kopyalayın ve şöyle görünen bir googledrive.com bağlantısı oluşturun:

https://www.googledrive.com/host/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U

1
@ FıratKÜÇÜK doğru url biçimine sahip olduğunuzdan emin misiniz? (www.googledrive.com ve drive.google.com değil not edin) Az önce denedim ve işe yaradı.
Charles Forest

Dosyam 50 MB'nin üzerinde. bir virüs taraması onayı ister. Yani çözüm benim durumum için uygun değil. Bunun yerine "gdrive" konsol uygulama çözümü kullandım.
Fırat KÜÇÜK

@ FıratKÜÇÜK Normalde virüs kontrollerini tetikleyecek bu yöntemle 200+ Mb'lik bir dosya indirmeyi başardım. Kimliği sağ tıklamadan aldım> "paylaşılabilir bağlantı al".
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功


11
Bu özellik kullanımdan kaldırıldı ve artık desteklenmiyor
Daniel G

19

Kolay yol:

(bir kerelik indirme için ihtiyacınız varsa)

  1. İndirme bağlantısı olan Google Drive web sayfasına gidin
  2. Tarayıcı konsolunuzu açın ve "ağ" sekmesine gidin
  3. İndirme bağlantısını tıklayın
  4. Dosyanın indirilmeye başlamasını bekleyin ve karşılık gelen isteği bulun (listedeki son istek olmalıdır), ardından indirme işlemini iptal edebilirsiniz
  5. İsteği sağ tıklayın ve "cURL olarak kopyala" yı (veya benzeri) tıklayın

Sonunda şöyle bir şey bulmalısınız:

curl 'https://doc-0s-80-docs.googleusercontent.com/docs/securesc/aa51s66fhf9273i....................blah blah blah...............gEIqZ3KAQ==' --compressed

Konsolunuzda yapıştırın, > my-file-name.extensionsonuna ekleyin (aksi takdirde dosyayı konsolunuza yazacaktır) ve enter tuşuna basın :)


Haziran 2019 tarihinde çalıştı
techkuz

Şubat 2020
Jivan

12

Roshan Sethia'nın cevabına dayanarak

Mayıs 2018

WGET kullanma :

  1. Aşağıdaki gibi wgetgdrive.sh adlı bir kabuk komut dosyası oluşturun:

    #!/bin/bash
    
    # Get files from Google Drive
    
    # $1 = file ID
    # $2 = file name
    
    URL="https://docs.google.com/uc?export=download&id=$1"
    
    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 $URL -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$1" -O $2 && rm -rf /tmp/cookies.txt
    
  2. Komut dosyasını yürütmek için doğru izinleri verin

  3. Terminalde çalıştırın:

    ./wgetgdrive.sh <file ID> <filename>
    

    Örneğin:

    ./wgetgdrive.sh 1lsDPURlTNzS62xEOAIG98gsaW6x2PYd2 images.zip
    

1
Bu CHARM teşekkürler ve işleri kolaylaştırmak için çalışır:chmod 770 wgetgdrive.sh
Mohamed Kawsara

8

--GÜNCELLENMİŞ--

Önce dosyayı indirmek için youtube-dlPython buradan :

youtube-dl: https://rg3.github.io/youtube-dl/download.html

veya aşağıdakilerle kurun pip:

sudo python2.7 -m pip install --upgrade youtube_dl 
# or 
# sudo python3.6 -m pip install --upgrade youtube_dl

GÜNCELLEME:

Bunu yeni öğrendim:

  1. Drive.google.com adresinden indirmek istediğiniz dosyayı sağ tıklayın

  2. Tıklayın Get Sharable link

  3. Açık / Kapalı Link sharing on

  4. Tıklamak Sharing settings

  5. Seçenekler için üst açılır menüyü tıklayın

  6. Daha fazlası

  7. seçmek [x] On - Anyone with a link

  8. Bağlantıyı kopyala

https://drive.google.com/file/d/3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR/view?usp=sharing       
(This is not a real file address)

Kimliği şu tarihten sonra kopyalayın https://drive.google.com/file/d/:

3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR

Bunu komut satırına yapıştırın:

youtube-dl https://drive.google.com/open?id=

Kimliği arkasına yapıştırın open?id=

youtube-dl https://drive.google.com/open?id=3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR
[GoogleDrive] 3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR: Downloading webpage
[GoogleDrive] 3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR: Requesting source file
[download] Destination: your_requested_filename_here-3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR
[download] 240.37MiB at  2321.53MiB/s (00:01)

Umarım yardımcı olur


1
merhaba teşekkürler ben bunu denedim ve komut isteminden çalıştırdığınızda indirme, ama bir sunucuda erişim gibi gerçek "doğrudan bağlantı" almak için bir yolu var mı? {Spawn} düğümü woith çalıştırmak için çalışıyorum, ama sonra düğüm sunucusuna indirmek zorunda ve oradan tekrar indirmek, sadece google sürücüden doğrudan indirme bağlantısı almak için bir yolu var mı? Hangi bağlantıyı kullanıyorlar?
bluejayke

Bu yöntemi şimdi çok kullanmalıyım, bu yüzden tamamen otomatikleştirmeye çalışacağım. Sadece google bağlantısını alın ve gerisini bir Python betiği yapın. Sanırım bunu yapmak için selenyum kullanacağım. Çözümüm çalışırken çalışır.
jturi

Cevabım güncellendi. Bu, youtube-dl ile herhangi bir dosyayı indirmek için 2 tıklama kadar basit.
jturi

7

Aralık 2016 itibariyle benim için neyin işe yaradığını hiçbir cevap önermiyor ( kaynak ):

curl -L https://drive.google.com/uc?id={FileID}

Google Drive dosyasının bağlantıya sahip olanlarla paylaşılması ve {FileID}arkasındaki dize olması şartıyla?id= paylaşılması ve paylaşılan URL'de .

Büyük dosyaları kontrol etmeme rağmen, bilmenin yararlı olabileceğine inanıyorum.


Hmmm ... benim için çalışmadı :( Sadece web içeriğini indirir - dosyayı değil
kgingeri

1
curl -L -o {filename} https://drive.google.com/uc?id={FileID}benim için çalıştı, teşekkürler!
Dário

Bu benim için işe yaramıyor. Bağlantım aşağıda (bağlantıya sahip olan herkes görüntüleyebilir): drive.google.com/file/d/0B7Jh6M91b83bdFlWX2RIU2hYSWM/… . Denedim: <code> curl -O -J -L drive.google.com/uc?id=0B7Jh6M91b83bdFlWX2RIU2hYSWM </code> ve bu sonucu alıyorum: curl: (56) CONNECT sonrasında proxy'den HTTP kodu 403 alındı
Steve

7
Yalnızca 25 MB'a kadar olan dosyalar için çalışır, daha büyük dosyalar virüs tarama uyarı sayfası verir
cen

6

En kolay yol:

  1. İndirme bağlantısı oluştur ve dosya kimliğini kopyala
  2. WGET ile indir: 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

1
Çok teşekkür ederim! İnanılmaz derecede faydalı
Nicholas Pipitone

6

Yukarıdaki yanıtlar Nisan 2020 için eskimiş, çünkü Google Drive artık dosyanın gerçek konumuna bir yönlendirme kullanıyor.

Herkese açık belgeler için macOS 10.15.4'te Nisan 2020'den itibaren çalışma:

# this is used for drive directly downloads
function download-google(){
  echo "https://drive.google.com/uc?export=download&id=$1"
  mkdir -p .tmp
  curl -c .tmp/$1cookies "https://drive.google.com/uc?export=download&id=$1" > .tmp/$1intermezzo.html;
  curl -L -b .tmp/$1cookies "$(egrep -o "https.+download" .tmp/$1intermezzo.html)" > $2;
}

# some files are shared using an indirect download
function download-google-2(){
  echo "https://drive.google.com/uc?export=download&id=$1"
  mkdir -p .tmp
  curl -c .tmp/$1cookies "https://drive.google.com/uc?export=download&id=$1" > .tmp/$1intermezzo.html;
  code=$(egrep -o "confirm=(.+)&amp;id=" .tmp/$1intermezzo.html | cut -d"=" -f2 | cut -d"&" -f1)
  curl -L -b .tmp/$1cookies "https://drive.google.com/uc?export=download&confirm=$code&id=$1" > $2;
}

# used like this
download-google <id> <name of item.extension>

1
download-google-2benim için çalışıyor. Dosyam 3G boyutunda. Teşekkürler @ danieltan95
Saurabh Kumar

Bunu download-google-2son kıvrımını güncelledim curl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;ve şimdi indirmeye devam edebilir.
ssi-anik

Düşük hızda indirme ile bir şeyler ters gitti gibi görünüyor. başka bir yaklaşım buldum. qr.ae/pNrPaJ
ssi-anik

5

Google Drive ile aynı sorunu yaşadım.

Bağlantılar 2'yi kullanarak sorunu şu şekilde çözdüm .

  1. PC'nizde bir tarayıcı açın, Google Drive'daki dosyanıza gidin. Dosyanıza genel bir bağlantı verin.

  2. Genel bağlantıyı panonuza kopyalayın (ör. Sağ tıklama, Bağlantı adresini kopyala)

  3. Bir Terminal açın. Başka bir PC'ye / sunucuya / makineye indiriyorsanız bu noktaya SSH göndermelisiniz

  4. Bağlantılar 2'yi yükleyin (debian / ubuntu yöntemi, dağıtımınızı veya OS eşdeğerinizi kullanın)

    sudo apt-get install links2

  5. Bağlantıyı terminalinize yapıştırın ve aşağıdaki gibi Bağlantılar ile açın:

    links2 "paste url here"

  6. Ok Tuşlarınızı kullanarak Bağlantılar içindeki indirme bağlantısına gidin ve Enter

  7. Bir dosya adı seçin ve dosyanızı indirin


Linkstamamen hile yaptı! Ve bundan çok daha iyiw3m
alvas

1
Benim için işe yarayan tek şey bu! Şubat 2019. Önceki yorumlardaki gdown uygulaması, google dokümanlar dışında hiç kimse tarafından barındırılmamaktadır, bu yüzden indirmek de imkansızdır.
Steven

5

Youtube-dl kullanın !

youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890

--get-urlDoğrudan indirme URL'si almak için de geçebilirsiniz .


1
@ Hala benim için çalışıyor youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage. belki de eski bir sürümüne sahipsiniz youtube-dlveya bağlantı biçimi bir nedenden dolayı tanınmadı ... Kimliği, orijinal URL'nizdeki dosya kimliğiyle değiştirmeyi deneyin
aularon

5

Ben bu iş parçacığında iyi bir cevap gönderdi @ Amit Chahar kıvırmak snippet'i kullanıyorum . Ayrı bir dosya yerine bash işlevine koymak yararlı buldum.sh

function curl_gdrive {

    GDRIVE_FILE_ID=$1
    DEST_PATH=$2

    curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${GDRIVE_FILE_ID}" > /dev/null
    curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${GDRIVE_FILE_ID}" -o ${DEST_PATH}
    rm -fr cookie
}

örneğin ~/.bashrca'ya (otomatik olarak tedarik edilmezse, kaynak sağlandıktan sonra) dahil edilebilir ve aşağıdaki şekilde kullanılabilir

   $ curl_gdrive 153bpzybhfqDspyO_gdbcG5CMlI19ASba imagenet.tar

Muhtemelen en iyi cevap budur ... python gdown karşılaştırıldığında çok ağır. Gdrive'dan oldukça memnun olmadığımı söylemeliyim ...
smaudet

1
Rm komutunuzda ne -f ne de -r'ye ihtiyacınız yoktur. İnsanlara her zaman "rm -rf"
yi öğretirseniz

4

Go: drive'da yazılmış açık kaynaklı çok platformlu bir istemci var . Oldukça güzel ve tam özellikli ve aynı zamanda aktif gelişimde.

$ drive help pull
Name
        pull - pulls remote changes from Google Drive
Description
        Downloads content from the remote drive or modifies
         local content to match that on your Google Drive

Note: You can skip checksum verification by passing in flag `-ignore-checksum`

* For usage flags: `drive pull -h`

4

Yukarıdaki yanıtların tümü, cevabın basitliğini gizliyor veya açıklanmayan bazı nüanslara sahip gibi görünüyor.

Dosya herkese açık olarak paylaşılıyorsa, yalnızca dosya kimliğini bilerek doğrudan bir indirme bağlantısı oluşturabilirsiniz. URL, " https://drive.google.com/uc?id=[FILEID closeup&export=download" biçiminde olmalıdır. Bu, 11-22-2019 tarihinden itibaren geçerlidir. Bu, alıcının google'da oturum açmasını gerektirmez, ancak dosyanın herkese açık olarak paylaşılmasını gerektirir.

  1. Tarayıcınızda drive.google.com adresine gidin.

  2. Dosyayı sağ tıklayın ve "Paylaşılabilir bağlantı al" ı tıklayın

Sağ tıklama paylaşılabilir bağlantı al

  1. Yeni bir sekme açın, adres çubuğunu seçin ve paylaşılabilir bağlantı olacak panonuzun içeriğini yapıştırın. Dosyanın Google'ın görüntüleyicisi tarafından görüntülendiğini göreceksiniz. Kimlik, URL'nin "Görünüm" bileşeninden hemen önceki sayıdır:

resim açıklamasını buraya girin

  1. URL'yi, "[FILEID]" ifadesini paylaşılan dosyanızın kimliğiyle değiştirerek aşağıdaki biçimde olacak şekilde düzenleyin:

    https://drive.google.com/uc?id=[FILEID]&export=download

  2. Bu sizin doğrudan indirme bağlantınız. Tarayıcınızda tıklarsanız, dosya şimdi tarayıcınıza "itilir", indirme iletişim kutusunu açar ve dosyayı kaydetmenize veya açmanıza izin verir. Bu bağlantıyı indirme komut dosyalarınızda da kullanabilirsiniz.

  3. Yani eşdeğer kıvırma komutu şöyle olur:

curl -L "https://drive.google.com/uc?id=AgOATNfjpovfFrft9QYa-P1IeF9e7GWcH&export=download" > phlat-1.0.tar.gz

2
Bu büyük dosyalar için çalışmaz: hatayı alınGoogle 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?
Rekovni

Bu işe yaradı. Teşekkür ederim! Bağlantıyı bu formata dönüştürdükten sonra, diğer yanıtlarda gösterildiği gibi gdown'u da kullanabilirsiniz
Harry M

3

Nanoix'in perl betiğini ya da gördüğüm diğer kıvrılma örneklerini çalıştıramadım, bu yüzden api'yi python'da kendime bakmaya başladım. Bu, küçük dosyalar için iyi çalıştı, ancak büyük dosyalar mevcut ram geçmiş boğuldu, bu yüzden api'nin kısmi indirme yeteneğini kullanan diğer bazı güzel parça kodunu buldum. Buraya gelin: https://gist.github.com/csik/c4c90987224150e4a0b2

API arabiriminden yerel dizininize client_secret json dosyasını indirmeyle ilgili biraz not alın.

Kaynak
$ cat gdrive_dl.py
from pydrive.auth import GoogleAuth  
from pydrive.drive import GoogleDrive    

"""API calls to download a very large google drive file.  The drive API only allows downloading to ram 
   (unlike, say, the Requests library's streaming option) so the files has to be partially downloaded
   and chunked.  Authentication requires a google api key, and a local download of client_secrets.json
   Thanks to Radek for the key functions: http://stackoverflow.com/questions/27617258/memoryerror-how-to-download-large-file-via-google-drive-sdk-using-python
"""

def partial(total_byte_len, part_size_limit):
    s = []
    for p in range(0, total_byte_len, part_size_limit):
        last = min(total_byte_len - 1, p + part_size_limit - 1)
        s.append([p, last])
    return s

def GD_download_file(service, file_id):
  drive_file = service.files().get(fileId=file_id).execute()
  download_url = drive_file.get('downloadUrl')
  total_size = int(drive_file.get('fileSize'))
  s = partial(total_size, 100000000) # I'm downloading BIG files, so 100M chunk size is fine for me
  title = drive_file.get('title')
  originalFilename = drive_file.get('originalFilename')
  filename = './' + originalFilename
  if download_url:
      with open(filename, 'wb') as file:
        print "Bytes downloaded: "
        for bytes in s:
          headers = {"Range" : 'bytes=%s-%s' % (bytes[0], bytes[1])}
          resp, content = service._http.request(download_url, headers=headers)
          if resp.status == 206 :
                file.write(content)
                file.flush()
          else:
            print 'An error occurred: %s' % resp
            return None
          print str(bytes[1])+"..."
      return title, filename
  else:
    return None          


gauth = GoogleAuth()
gauth.CommandLineAuth() #requires cut and paste from a browser 

FILE_ID = 'SOMEID' #FileID is the simple file hash, like 0B1NzlxZ5RpdKS0NOS0x0Ym9kR0U

drive = GoogleDrive(gauth)
service = gauth.service
#file = drive.CreateFile({'id':FILE_ID})    # Use this to get file metadata
GD_download_file(service, FILE_ID) 

3

İşte yazdığım küçük bir bash betiği, bugün bu işi yapıyor. Büyük dosyalar üzerinde çalışır ve kısmen getirilen dosyaları da devam ettirebilir. İki argüman alır, birincisi file_id, ikincisi çıktı dosyasının adıdır. Burada önceki cevaplara göre ana iyileştirmeler büyük dosyalar üzerinde çalışıyor ve sadece yaygın olarak kullanılan araçlara ihtiyaç duyuyor: bash, curl, tr, grep, du, cut ve mv.

#!/usr/bin/env bash
fileid="$1"
destination="$2"

# try to download the file
curl -c /tmp/cookie -L -o /tmp/probe.bin "https://drive.google.com/uc?export=download&id=${fileid}"
probeSize=`du -b /tmp/probe.bin | cut -f1`

# did we get a virus message?
# this will be the first line we get when trying to retrive a large file
bigFileSig='<!DOCTYPE html><html><head><title>Google Drive - Virus scan warning</title><meta http-equiv="content-type" content="text/html; charset=utf-8"/>'
sigSize=${#bigFileSig}

if (( probeSize <= sigSize )); then
  virusMessage=false
else
  firstBytes=$(head -c $sigSize /tmp/probe.bin)
  if [ "$firstBytes" = "$bigFileSig" ]; then
    virusMessage=true
  else
    virusMessage=false
  fi
fi

if [ "$virusMessage" = true ] ; then
  confirm=$(tr ';' '\n' </tmp/probe.bin | grep confirm)
  confirm=${confirm:8:4}
  curl -C - -b /tmp/cookie -L -o "$destination" "https://drive.google.com/uc?export=download&id=${fileid}&confirm=${confirm}"
else
  mv /tmp/probe.bin "$destination"
fi

SO hoş geldiniz. Bu amaçla herhangi bir referans kullandıysanız, lütfen cevabınıza ekleyin. Her neyse, güzel iş +1
M--

3

Bu, Kasım 2017 itibariyle çalışır https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db

#!/bin/bash

SOURCE="$1"
if [ "${SOURCE}" == "" ]; then
    echo "Must specify a source url"
    exit 1
fi

DEST="$2"
if [ "${DEST}" == "" ]; then
    echo "Must specify a destination filename"
    exit 1
fi

FILEID=$(echo $SOURCE | rev | cut -d= -f1 | rev)
COOKIES=$(mktemp)

CODE=$(wget --save-cookies $COOKIES --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=${FILEID}" -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/Code: \1\n/p')

# cleanup the code, format is 'Code: XXXX'
CODE=$(echo $CODE | rev | cut -d: -f1 | rev | xargs)

wget --load-cookies $COOKIES "https://docs.google.com/uc?export=download&confirm=${CODE}&id=${FILEID}" -O $DEST

rm -f $COOKIES

"Kaynak url" belirtilen ve bazı ayrıştırma olmasına rağmen ben sadece burada ve diğer parametrelerde ilk parametre olarak fileid denilen doğrudan kullanarak çalıştığını anlamaya çalışmadım.
Ocak

@jan Bu, birden fazla url stili olduğu anlamına gelebilir. Hala senin için çalıştı sevindim.
ppetraki

3

Bu çöple uğraştıktan sonra. Chrome - geliştirici araçlarını kullanarak tatlı dosyamı indirmenin bir yolunu buldum.

  1. Google dokümanlar sekmenizde Ctr + Üst Karakter + J (Ayar -> Geliştirici araçları)
  2. Ağ sekmelerine geç
  3. Dokümanlar dosyanızda "İndir" -> CSV, xlsx, ... olarak indir'i tıklayın.
  4. İsteği "Ağ" konsolunda gösterecektir resim açıklamasını buraya girin

  5. Sağ tıklayın -> Kopyala -> Kıvrılma Olarak Kopyala

  6. Kıvır komutunuz böyle olacak ve -odışa aktarılan bir dosya oluşturmak için eklenecektir . 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

Çözüldü!


bağlantının süresi dolar ve bir seferde yalnızca 1 ip adresi içindir
bluejayke

Oturumu canlı tutmak için sürekli ve sürekli bir istekte bulunabilirsiniz. @bluejayke
Ender

Bunu tam olarak yaptım ve buraya başka bir cevap yazmak için geldiğinde, sizinkine rastladım. Tarayıcı olmayan bir sunucuya 36GB dosya indirmem gerektiğinden farklı IP'lerle çalıştığını onaylıyorum. Ve bağlantıyı dizüstü bilgisayarımdan çıkardım.
dmitry502

2

İşte Google Drive'dan Google Cloud Linux kabuğuma dosya indirmek için geldiğim geçici çözüm.

  1. Dosyayı PUBLIC ile ve gelişmiş paylaşımı kullanarak Düzenleme izinleriyle paylaşın.
  2. Kimliği olan bir paylaşım bağlantısı alırsınız. Aşağıdaki bağlantıya bakın: - drive.google.com/file/d/[Kaydol/view?usp=sharing
  3. Bu kimliği kopyalayın ve aşağıdaki bağlantıya yapıştırın: -

googledrive.com/host/[ID]

  1. Yukarıdaki link indirme linkimiz olacaktır.
  2. Dosyayı indirmek için wget kullanın: -

wget https://googledrive.com/host/[ID]

  1. Bu komut, adı [ID] olarak uzantısı olmayan ve wget komutunu çalıştırdığınız konuma aynı dosya boyutuna sahip olan dosyayı indirir.
  2. Aslında, uygulamamda sıkıştırılmış bir klasör indirdim. bu yüzden bu garip dosyayı kullanarak yeniden adlandırdı: -

mv [ID] 1.zip

  1. sonra kullanarak

sıkıştırmayı aç

dosyaları alacağız.



Google, barındırma hizmetini sürücüden aldı, bu yüzden artık çalışmıyor.
kgingeri

2

Bunun için çalışan bir çözüm buldum ... Sadece aşağıdakileri kullanın

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=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi" -O besteyewear.zip && rm -rf /tmp/cookies.txt

Bunu yaparken UYARI: docs.google.com'un `/ C = US / O = Google Güven Hizmetleri / CN = Google İnternet Yetkilisi G3 'tarafından verilen sertifikasını doğrulayamıyorum: Yayıncının yetkisi yerel olarak doğrulanamıyor. HTTP isteği gönderildi, yanıt bekleniyor ... 404 Bulunamadı 2019-02-08 02:56:30 HATA 404: Bulunamadı. herhangi bir geçici çözüm var mı?
bluejayke

VAOV! Harika bir cevap ve çok mantıklı. Yazdığınız için teşekkürler. Bu komutu kullanarak 1.3 GB dosya indirildi ... Linux terminalinden tam otomatik mod sadece bu komutla. GCP'de de denendi. Orada da harika çalışıyor. Yıl 2020 ... Bunun doğru yol olduğuna inanıyorum ... biraz komut değiştirseler bile bu zaman testine dayanmalı.
Jutt

2

Daha kolay bir yol var.

Firefox / chrome uzantısından cliget / CURLWGET yükleyin.

Dosyayı tarayıcıdan indirin. Bu, dosyayı indirirken kullanılan çerezleri ve başlıkları hatırlayan bir kıvrılma / wget bağlantısı oluşturur. İndirmek için herhangi bir kabuktan bu komutu kullanın


Bu hiç şüphesiz en kolay ve en basit yoldur.
c0degeas

2

google sürücüden dosyayı indirmenin kolay yolu da colab'dan dosya indirebilirsiniz

pip install gdown

import gdown

Sonra

url = 'https://drive.google.com/uc?id=0B9P1L--7Wd2vU3VUVlFnbTgtS2c'
output = 'spam.txt'
gdown.download(url, output, quiet=False)

veya

fileid='0B9P1L7Wd2vU3VUVlFnbTgtS2c'

gdown https://drive.google.com/uc?id=+fileid

Belge https://pypi.org/project/gdown/


güzel. ama phi'nin cevabından bir yıl önce gönderilen cevabından farkı nedir?
umläute

1

Mayıs 2018 ÇALIŞMA

Merhaba bu açıklamalara dayanarak ... ben dosyasından URL listesini verme bir yumruk oluşturmak URLS.txt a URLS_DECODED.txt bir Flashget gibi bazı hızlandırıcı olarak kullanılan (i pencereler ve linux birleştirmek CygWin kullanın)

İndirmeyi önlemek ve son bağlantıyı almak için komut örümcek tanıtıldı (doğrudan)

Komut GREP HEAD ve CUT, işlem ve son bağlantı olsun, ispanyolca dil dayanmaktadır, belki İNGİLİZ DİLİ olabilir

echo -e "$URL_TO_DOWNLOAD\r" muhtemelen \ r sadece cywin ve bir \ n (break line) ile değiştirilmesi gerekir

**********user*********** kullanıcı klasörü

*******Localización*********** ispanyolca dildir, asterikleri temizleyin ve kelimeyi ingilizce olarak bırakın Yer ve HEAD ve CUT numaralarını yaklaşımı uygun hale getirin.

rm -rf /home/**********user***********/URLS_DECODED.txt
COUNTER=0
while read p; do 
    string=$p
    hash="${string#*id=}"
    hash="${hash%&*}"
    hash="${hash#*file/d/}"
    hash="${hash%/*}"
    let COUNTER=COUNTER+1
    echo "Enlace "$COUNTER" id="$hash
    URL_TO_DOWNLOAD=$(wget --spider --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='$hash -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id="$hash 2>&1 | grep *******Localización***********: | head -c-13 | cut -c16-)
    rm -rf /tmp/cookies.txt
    echo -e "$URL_TO_DOWNLOAD\r" >> /home/**********user***********/URLS_DECODED.txt
    echo "Enlace "$COUNTER" URL="$URL_TO_DOWNLOAD
done < /home/**********user***********/URLS.txt

1

Sadece wget'i kullanmanız gerekir:

 https://drive.google.com/uc?authuser=0&id=[your ID without brackets]&export=download

PD. Dosya herkese açık olmalıdır.


0

skicka , bir google-sürücüden erişim dosyaları yüklemek, indirmek için bir cli aracıdır.

misal -

skicka download /Pictures/2014 ~/Pictures.copy/2014
10 / 10 [=====================================================] 100.00 % 
skicka: preparation time 1s, sync time 6s
skicka: updated 0 Drive files, 10 local files
skicka: 0 B read from disk, 16.18 MiB written to disk
skicka: 0 B uploaded (0 B/s), 16.18 MiB downloaded (2.33 MiB/s)
skicka: 50.23 MiB peak memory used
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.