Çözüldü Txt dosyasındaki müzik listesi YouTube'a nasıl aktarılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Çözüm
Python:
import os
import pickle
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.discovery import build

credentials = None
if os.path.exists("giristokeni.pickle"):
    print("Token dosya üzerinden alınıyor...")
    with open("giristokeni.pickle", "rb") as token:
        credentials = pickle.load(token)

if not credentials or not credentials.valid:
    if credentials and credentials.expired and credentials.refresh_token:
        print("Token yenileme...")
        credentials.refresh(Request())
    else:
        print("Yeni Token oluşturma")
        flow = InstalledAppFlow.from_client_secrets_file("client_secret.json", scopes=["https://www.googleapis.com/auth/youtube.force-ssl"])
        flow.run_local_server(port=1453, authorization_prompt_message="consent")

        credentials = flow.credentials
      
        with open("giristokeni.pickle", "wb") as f:
            print("Token Kaydediliyor")
            pickle.dump(credentials, f)


youtube = build("youtube", "v3", credentials=credentials)

def youtube_search(query):
    request = youtube.search().list(
        q=query,
        part='id',
        maxResults=1
    )
    response = request.execute()
    video_id = response['items'][0]['id']['videoId']
    return video_id

def add_video_to_playlist(video_id, playlist_id):
    request = youtube.playlistItems().insert(
        part="snippet",
        body={
            "snippet": {
                "playlistId": playlist_id,
                "resourceId": {
                    "kind": "youtube#video",
                    "videoId": video_id
                }
            }
        }
    )
    response = request.execute()
    print(f"Video Playlist'e eklendi. Başlık: {response['snippet']['title']}")


if __name__ == "__main__":
    playlistid=""
    with open("songs.txt", 'r', encoding='utf-8') as file:
        for line in file:
            song_name = line.strip()
            video_id = youtube_search(song_name)
            add_video_to_playlist(video_id, playlistid)

Öncelikle google cloud üzerinden bir proje oluşturmanız ve Outh 2.0 adımlarını tamamlayıp google hemen onay vermeyeceği için giriş yapacağınız e-postayı test kullanıcısı olarak eklemeniz gerekmekte.
z (1).png

Burada YT API'sini etkinleştiriyoruz.

z (2).png

Bu kısımda ise uygulamanın gereksinimini seçiyoruz
z (3).png



Tüm bunları yapınca bize bir client_secret_xxx.json şeklinde bir dosya verecek. O dosyayı indirip proje dizinine client_secret.json şeklinde isimlendirip atıyoruz.
Sonrasında ise songs.txt adındaki dosyamızı da program içeriğine atıyoruz ve programı Python ile başlatıyoruz.

Kullandığım kütüphaneleri indirmek için: pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

venv
ortamı oluşturmanızı öneririm.

Tamam teşekkürler. Bilgisayar biraz eski dosya biraz uzun herhangi bir sorun çıkmaz değil mi?

Bir de mesela listede müziklerde isimlerde harf hataları var.
Örneğin.
www.mp3lere.com - selda bagcan - don gel birtan.mp3 6246528 F:\?\
Kurtarma programı ile isimleri kurtadığım için sonlarında bir şeyler var.
Ya da böyle.
Öykü&_berk-_seni_ben_unutmak_istemedim_ki396174.mp3 4067044 F:\?\
Bunlar sorun çıkarır mı? Silmeyi denedim ama fazla olunca pes ettim.
bu program youtube arama çubuğunu kullanıyor gibi düşün eğer o arama yt üzerinde de çıkıyorsa ekler. fakat gördüğüm kadarıyla sonunda hep mp3 var gibi bu yüzden mp3 kısımlarından sonra gelenleri silebilirsiniz.
Bilgisayarın eski olmasına gelirsek dosya çok aşırı büyük olmadığı sürece bir problem olmayacaktır. bahsettiğim txt dosyasının 100-200mb şeklinde olması. :D

1712673513486.png

Aradığım zaman bir sıkıntı çıkmıyor gibi gözüküyor.
Bu isteğinizi YouTube API kullanarak yapabilirsiniz. Fakat biraz yazılım bilgisine ihtiyaç var. Örnek olarak Python üzerinde basitçe yapılabilir.
 
Başka bir yöntem ile yapabilir miyiz txt dosyası biraz büyük. Hem de öğrenmiş olurum. Python'dan nasıl yapıldığını söylerseniz sevinirim.
Herhangi bir program bildiğim kadarıyla yok fakat istediğiniz txt dosyasını buraya atarsanız ve playlistinize benim de eklememe izin verirseniz sizin için bunu program halinde yapabilirim.

Çünkü bir tane değil bir sürü var siz uğraşmayın.
 
Evet kısa bi kod yazdım ve çalışıyor.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Başka bir yöntem ile yapabilir miyiz txt dosyası biraz büyük. Hem de öğrenmiş olurum. Python'dan nasıl yapıldığını söylerseniz sevinirim.


Çünkü bir tane değil bir sürü var siz uğraşmayın.
Hazırlayıp atayım kodu.
 
Tamam teşekkürler. Bilgisayar biraz eski dosya biraz uzun herhangi bir sorun çıkmaz değil mi?

Bir de mesela listede müziklerde isimlerde harf hataları var.
Örneğin.
www.mp3lere.com - selda bagcan - don gel birtan.mp3 6246528 F:\?\
Kurtarma programı ile isimleri kurtadığım için sonlarında bir şeyler var.
Ya da böyle.
Öykü&_berk-_seni_ben_unutmak_istemedim_ki396174.mp3 4067044 F:\?\
Bunlar sorun çıkarır mı? Silmeyi denedim ama fazla olunca pes ettim.
 
Son düzenleme:
Python:
import os
import pickle
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.discovery import build

credentials = None
if os.path.exists("giristokeni.pickle"):
    print("Token dosya üzerinden alınıyor...")
    with open("giristokeni.pickle", "rb") as token:
        credentials = pickle.load(token)

if not credentials or not credentials.valid:
    if credentials and credentials.expired and credentials.refresh_token:
        print("Token yenileme...")
        credentials.refresh(Request())
    else:
        print("Yeni Token oluşturma")
        flow = InstalledAppFlow.from_client_secrets_file("client_secret.json", scopes=["https://www.googleapis.com/auth/youtube.force-ssl"])
        flow.run_local_server(port=1453, authorization_prompt_message="consent")

        credentials = flow.credentials
      
        with open("giristokeni.pickle", "wb") as f:
            print("Token Kaydediliyor")
            pickle.dump(credentials, f)


youtube = build("youtube", "v3", credentials=credentials)

def youtube_search(query):
    request = youtube.search().list(
        q=query,
        part='id',
        maxResults=1
    )
    response = request.execute()
    video_id = response['items'][0]['id']['videoId']
    return video_id

def add_video_to_playlist(video_id, playlist_id):
    request = youtube.playlistItems().insert(
        part="snippet",
        body={
            "snippet": {
                "playlistId": playlist_id,
                "resourceId": {
                    "kind": "youtube#video",
                    "videoId": video_id
                }
            }
        }
    )
    response = request.execute()
    print(f"Video Playlist'e eklendi. Başlık: {response['snippet']['title']}")


if __name__ == "__main__":
    playlistid=""
    with open("songs.txt", 'r', encoding='utf-8') as file:
        for line in file:
            song_name = line.strip()
            video_id = youtube_search(song_name)
            add_video_to_playlist(video_id, playlistid)

Öncelikle google cloud üzerinden bir proje oluşturmanız ve Outh 2.0 adımlarını tamamlayıp google hemen onay vermeyeceği için giriş yapacağınız e-postayı test kullanıcısı olarak eklemeniz gerekmekte.
z (1).png

Burada YT API'sini etkinleştiriyoruz.

z (2).png

Bu kısımda ise uygulamanın gereksinimini seçiyoruz
z (3).png



Tüm bunları yapınca bize bir client_secret_xxx.json şeklinde bir dosya verecek. O dosyayı indirip proje dizinine client_secret.json şeklinde isimlendirip atıyoruz.
Sonrasında ise songs.txt adındaki dosyamızı da program içeriğine atıyoruz ve programı Python ile başlatıyoruz.

Kullandığım kütüphaneleri indirmek için: pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

venv
ortamı oluşturmanızı öneririm.

Tamam teşekkürler. Bilgisayar biraz eski dosya biraz uzun herhangi bir sorun çıkmaz değil mi?

Bir de mesela listede müziklerde isimlerde harf hataları var.
Örneğin.
www.mp3lere.com - selda bagcan - don gel birtan.mp3 6246528 F:\?\
Kurtarma programı ile isimleri kurtadığım için sonlarında bir şeyler var.
Ya da böyle.
Öykü&_berk-_seni_ben_unutmak_istemedim_ki396174.mp3 4067044 F:\?\
Bunlar sorun çıkarır mı? Silmeyi denedim ama fazla olunca pes ettim.
bu program youtube arama çubuğunu kullanıyor gibi düşün eğer o arama yt üzerinde de çıkıyorsa ekler. fakat gördüğüm kadarıyla sonunda hep mp3 var gibi bu yüzden mp3 kısımlarından sonra gelenleri silebilirsiniz.
Bilgisayarın eski olmasına gelirsek dosya çok aşırı büyük olmadığı sürece bir problem olmayacaktır. bahsettiğim txt dosyasının 100-200mb şeklinde olması. :D

1712673513486.png

Aradığım zaman bir sıkıntı çıkmıyor gibi gözüküyor.
 
Son düzenleme:
Çözüm

Yeni konular

Geri
Yukarı