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)