Python ile Google Drive’daki Dosyaları Listeleme Yöntemi

Python Kullanarak Google Drive içindeki bulunan bir klasördeki tüm dosyaları bir .txt kaydetmek istiyorsanız ağagıdaki kod tam size göre. Bunun için öncelikle google drive api aktif edip .json formatında bilgisayarınıza indirmeniz gerekiyor daha sonra.

pip install google-api-python-client google-auth google-auth-oauthlib google-auth-httplib2

ile gerekli kütüphaneleri yüklemelisiniz.

rom google.oauth2 import service_account
from google.oauth2 import service_account
from googleapiclient.discovery import build

# Kimlik bilgilerinizi ve klasör ID'nizi buraya girin
SERVICE_ACCOUNT_FILE = 'path/to/your/service_account.json'
FOLDER_ID = 'your_folder_id'
OUTPUT_FILE = 'download_links.txt'

# Google Drive API ile kimlik doğrulama
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
creds = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

service = build('drive', 'v3', credentials=creds)

# Dosyaların indirme linklerini bir txt dosyasına yaz
with open(OUTPUT_FILE, 'w') as file:
    page_token = None
    while True:
        results = service.files().list(
            q=f"'{FOLDER_ID}' in parents and mimeType != 'application/vnd.google-apps.folder'",
            fields="files(id, name, webViewLink, exportLinks), nextPageToken",
            pageSize=1000,
            pageToken=page_token
        ).execute()
        
        items = results.get('files', [])
        page_token = results.get('nextPageToken')
        
        if not items:
            file.write('Hiç dosya bulunamadı.\n')
            break
        
        for item in items:
            name = item.get('name')
            web_view_link = item.get('webViewLink')
            export_links = item.get('exportLinks', {})
            
            # İndirme bağlantısını belirle
            if web_view_link:
                link = web_view_link
            elif export_links:
                # Eğer exportLinks varsa, ilk export linkini kullan
                link = list(export_links.values())[0]
            else:
                link = 'Bağlantı mevcut değil'

            file.write(f'{name}: {link}\n')

        # Eğer bir sonraki sayfa varsa devam et
        if not page_token:
            break

print(f'İndirme bağlantıları "{OUTPUT_FILE}" dosyasına kaydedildi.')

Kimlik bilgilerinizi ve klasör ID’nizi doğru şekilde ayarladığınızdan emin olduktan sonra kodunuzu çalıştırabilirsiniz. Klasörünüzdeki dosyaların indirme linklerini alacaksınız.