🔎 Ne İşe Yarar?
Bu script, YouTube Music çalma listenizi otomatik olarak karıştırır, yedekler ve tekrar çalma listesine yükler.
Aynı şarkılardan oluşan sıralı listeleri yeniden düzenlemek isteyenler için birebirdir.
📂 Özellikler
- ✔️ Playlist’i yedekleyerek güvence altına alır
- ✔️ Şarkıları rastgele karıştırır
- ✔️ Önceki yedeği siler ve son 7 yedeği saklar
- ✔️ Çakışmaları ve hataları otomatik yönetir
- ✔️ Günlük (log) sistemiyle işlem geçmişini kaydeder
💾 Dosyayı İndir
📥 YTMusic_Playlist_Shuffle.py dosyasını indir
🛠️ Nasıl Kullanılır?
- YTMusic_Playlist_Shuffle.py dosyasını indirin:
Sayfanın üst kısmındaki “Dosyayı İndir” butonuna tıklayarak scripti bilgisayarınıza kaydedin.
- Scripti ilk kez çalıştırın:
Betiği bir kez çalıştırdığınızda bulunduğu dizine config.ini
dosyası otomatik olarak oluşturulacaktır.
- Playlist ID’nizi girin:
config.ini
dosyasını bir metin düzenleyici ile açın ve aşağıdaki örneğe benzer şekilde useid
alanına playlist ID’nizi girin:
[settings]
useid = PL_3hP_qBiiUJzr6bXUmbQjPKJW2WdeCzM
Dosyayı kaydedin ve kapatın.
- Yetkilendirme dosyası (oauth.json):
(https://github.com/sigma67/ytmusicapi/discussions/682#discussioncomment-13334547)
- Scripti çalıştırın:
Artık her şey hazır! Scripti başlattığınızda:
- Mevcut çalma listeniz yedeklenir,
- Şarkılar rastgele karıştırılır,
- Önceki yedek silinir,
- Ve karışık şarkı listesi yeniden playlist’e eklenir.
Tüm işlem günlük olarak YTMusic_PlaylistMix.log
dosyasına yazılır.
🧠 Kaynak Kod Önizlemesi
"""
Bu betik, YTMusic API kullanarak belirtilen bir çalma listesindeki şarkıları yedekler ve karıştırır.
Aşağıdaki işlemleri gerçekleştirir:
- Config ve yedek dosyalarını (`config.ini` ve `yedek.ini`) yoksa oluşturur, varsa mevcut dosyaları yönetir.
- Çalma listesindeki şarkıları aynı sıralamayla yeni bir yedek listeye aktarır (her ihtimale karşı yeni bir playlist oluşturularak yedeklenir).
- Önceki yedeği (`silinecekid`) varsa siler.
- Çalma listesinde aynı şarkılar birden fazla kez bulunuyorsa, sadece tek bir kopyası kalacak şekilde temizler (aynı `videoId`'ye sahip olanlar teke düşürülür).
- `yedek.ini` dosyasında son 7 yedek girişini (yedek1–7) saklayarak yedek geçmişini korur.
- Şarkı listesini rastgele karıştırır ve orijinal playlisti güvenli bir şekilde temizler (hata toleranslı silme sistemiyle).
- Yeniden ekleme işlemini hata yönetimi ile gerçekleştirir; örneğin 409 gibi yaygın hatalarda otomatik olarak yeniden dener.
- HTTP isteklerinde hata oluşmaması için otomatik yeniden deneme (`Retry`) mekanizması uygular.
- İşlem adımlarını log dosyasına (`YTMusic_PlaylistMix.log`) sırayla kaydeder.
- Toplam işlem süresini okunabilir formatta kullanıcıya sunar (örneğin: 1d 25s).
Güvenlik, hata yönetimi ve kayıt tutma özellikleri sayesinde tam otomatik bir çalma listesi yedekleme ve karıştırma sistemi sağlar.
"""
import random
import configparser
from ytmusicapi import YTMusic
from datetime import datetime
import os, time
import json
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
import requests
# İşlem süresini ölçmek için zamanlayıcı başlatılıyor
start_time = time.time()
# Betik dizinini al
script_dir = os.path.dirname(os.path.abspath(__file__))
# Dosya yollarını al;
# YTMusic oturumu başlat
oauth_path = os.path.join(script_dir, "oauth.json")
# Config dosyasının adını belirleyelim
config_file = os.path.join(script_di
# ... Devamı dosyada