import os
import pandas as pd
from yt_dlp import YoutubeDL
# Ayarlar
EXCEL_PATH = "C:\\Users\\pc\\OneDrive\\Masaüstü\\[B]EXCELDOSYAADI[/B].xlsx" # YouTube link listesinin olduğu Excel dosyası
SAVE_PATH = "C:\\Users\\pc\\OneDrive\\Masaüstü\\[B]Yeni klasör[/B]" # İndirilecek dosyaların kaydedileceği yer
# YouTube videosunu indirme
def download_youtube_video(url, save_path):
try:
print(f"Video indiriliyor: {url}")
ydl_opts = {
'outtmpl': os.path.join(save_path, '%(title)'), # Dosya adı ve formatı
'format': 'bestvideo[height<=1080]+bestaudio/best[height<=1080]', # 1080p veya daha düşük kalitedeki en iyi video
'merge_output_format': 'mp4', # Birleştirilmiş çıktı formatı
}
with YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
print("Video indirildi.")
except Exception as e:
print(f"Video indirilemedi: {e}")
# Ana script
def main():
print("Excel dosyasından YouTube linkleri okunuyor...")
df = pd.read_excel(EXCEL_PATH)
if "YouTube Link" not in df.columns:
raise ValueError("Excel dosyasında 'YouTube Link' adlı bir sütun bulunamadı.")
youtube_links = df["YouTube Link"].dropna().tolist() # NaN değerleri kaldır
print(f"Toplam {len(youtube_links)} link indirilecek.")
for url in youtube_links:
download_youtube_video(url, SAVE_PATH)
print("Tüm işlemler tamamlandı.")
if __name__ == "__main__":
main() Youtube Toplu Video İndirme Phyton Kodu
5
●244
- 08-01-2025, 18:27:33Bilgisayarınızda ki excel dosyasında kayıtlı videoların linklerini toplu olarak en yüksek kalitede bir klasöre indirmek isterseniz eğer :
- 08-01-2025, 18:36:11İşte forum bu yüzden var. Teşekkür ederiz.Alicangzl06 bunu beğendi.1 kişi bunu beğendi.
- 08-01-2025, 20:56:51mesajım bulunsun teşekkürlerAlicangzl06 adlı üyeden alıntı: mesajı görüntüle
- 09-01-2025, 00:01:15Misafir adlı üyeden alıntı: mesajı görüntüleRica ederim ❤️mosyo adlı üyeden alıntı: mesajı görüntüle
- 09-01-2025, 00:24:39Alternatif olarak pip install yt-dlp ile ytdl python paketini kurduktan sonra şunu da kullanabilirsiniz,
best en iyi kaliteyi, worst en düşük dosya boyutunu veya diğer kaliteleri seçebilirsiniz.
import os from yt_dlp import YoutubeDL def get_user_inputs(): # Kullanıcıdan gerekli bilgileri al txt_path = input("Lütfen YouTube linklerinin bulunduğu txt dosyasının yolunu girin: ") download_path = input("Videoların kaydedileceği klasör yolunu girin: ") quality = input("Video kalitesini seçin (best/worst/1080p/720p/480p/360p): ") return txt_path, download_path, quality def create_download_directory(path): # İndirme klasörü yoksa oluştur if not os.path.exists(path): os.makedirs(path) print(f"'{path}' klasörü oluşturuldu.") def read_urls(file_path): # txt dosyasından linkleri oku try: with open(file_path, 'r', encoding='utf-8') as file: # Boş satırları ve whitespace'leri temizle urls = [line.strip() for line in file if line.strip()] return urls except FileNotFoundError: print(f"Hata: '{file_path}' dosyası bulunamadı.") return [] except Exception as e: print(f"Dosya okuma hatası: {str(e)}") return [] def download_videos(urls, download_path, quality): # Video kalitesi ayarlarını belirle quality_settings = { 'best': 'bestvideo+bestaudio/best', 'worst': 'worstvideo+worstaudio/worst', '1080p': 'bestvideo[height<=1080]+bestaudio/best[height<=1080]', '720p': 'bestvideo[height<=720]+bestaudio/best[height<=720]', '480p': 'bestvideo[height<=480]+bestaudio/best[height<=480]', '360p': 'bestvideo[height<=360]+bestaudio/best[height<=360]' } format_spec = quality_settings.get(quality.lower(), 'best') # yt-dlp ayarları ydl_opts = { 'format': format_spec, 'outtmpl': os.path.join(download_path, '%(title)s.%(ext)s'), 'ignoreerrors': True, # Hatalı linklerden sonra devam et 'no_warnings': False, 'progress_hooks': [lambda d: print(f"İndiriliyor: {d['filename']}")], } # Videoları indir with YoutubeDL(ydl_opts) as ydl: for url in urls: try: print(f"\nVideo indiriliyor: {url}") ydl.download([url]) except Exception as e: print(f"Hata oluştu ({url}): {str(e)}") def main(): print("YouTube Video İndirme Programı") print("-" * 30) # Kullanıcı girdilerini al txt_path, download_path, quality = get_user_inputs() # İndirme klasörünü oluştur create_download_directory(download_path) # Linkleri oku urls = read_urls(txt_path) if not urls: print("İndirilecek link bulunamadı.") return print(f"\nToplam {len(urls)} video indirilecek.") # İndirme işlemini başlat download_videos(urls, download_path, quality) print("\nİndirme işlemi tamamlandı!") if __name__ == "__main__": main()