מדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון
-
@2580 כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
@hartkhartk אבל
@2580 כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
@יאנג-בוי כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
@hartkhartk מה הקשר יוטיוב לכל הנושא?
מה שמוזר שבכל הקוד הוא לא משתמש בספריה yt-dlp שהיא לכאורה ה'קשר' ליוטיוב... (לפחות אני לא מצאתי בקוד...)
אולי לכן זה לא עובד?
חברים! זה חזר לעבוד! אני כבר עורך את המדריך ומחדש את הקוד
@hartkhartk חברים אני כבר לא יכול לערוך את הפוסט אבל זה הקוד המעודכן שעובד
import spotipy from spotipy.oauth2 import SpotifyOAuth import json # הגדרות ספוטיפיי SPOTIPY_CLIENT_ID = 'הכנס מזהה לקוח' SPOTIPY_CLIENT_SECRET = 'הכנס סוד לקוח' SPOTIPY_REDIRECT_URI = 'http://localhost:8888/callback' SCOPE = 'playlist-read-private' sp_oauth = SpotifyOAuth(SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI, scope=SCOPE) def get_playlist_tracks(playlist_uri): sp = spotipy.Spotify(auth_manager=sp_oauth) playlist_tracks = sp.playlist_tracks(playlist_uri) tracks = [] for item in playlist_tracks['items']: track = item['track'] track_info = f"{track['name']} - {track['artists'][0]['name']}" tracks.append(track_info) return tracks if __name__ == "__main__": playlist_uri = 'הכנס קישור לספוטיפיי' tracks = get_playlist_tracks(playlist_uri) with open('tracks.txt', 'w', encoding='utf-8') as f: for track in tracks: f.write(f"{track}\n") import yt_dlp import os def download_tracks(tracks_file, download_path): # יצירת תיקיית ההורדות אם לא קיימת if not os.path.exists(download_path): os.makedirs(download_path) with open(tracks_file, 'r', encoding='utf-8') as file: tracks = file.readlines() for track in tracks: track = track.strip() search_query = f"{track}" ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': os.path.join(download_path, '%(title)s.%(ext)s'), 'default_search': 'ytsearch', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([search_query]) if __name__ == "__main__": download_path = 'הכנס נתיב להורדת הקבצים' # שנה לנתיב הרצוי שלך download_tracks('tracks.txt', download_path)
-
עיצבן אותו המבנה של הקוד, אז שיניתי אותו קצת, לא בדקתי אם זה עובד
import spotipy from spotipy.oauth2 import SpotifyOAuth import yt_dlp import os # הגדרות download_path = 'הכניסו נתיב למקום הורדת הקבצים' # שנה לנתיב הרצוי שלך playlist_uri = input("הכנס קישור לשיר או לפלייליסט\n") SPOTIPY_CLIENT_ID = 'הכנס מזהה לקוח' SPOTIPY_CLIENT_SECRET = 'הכנס סוד הלקוח' SPOTIPY_REDIRECT_URI = 'http://localhost:8888/callback' SCOPE = 'playlist-read-private' sp_oauth = SpotifyOAuth(SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI, scope=SCOPE) def get_playlist_tracks(playlist_uri): sp = spotipy.Spotify(auth_manager=sp_oauth) playlist_tracks = sp.playlist_tracks(playlist_uri) tracks = [] for item in playlist_tracks['items']: track = item['track'] track_info = f"{track['name']} - {track['artists'][0]['name']}" tracks.append(track_info) return tracks def download_tracks(tracks, download_path): for track in tracks: track = track.strip() search_query = f"{track}" ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': os.path.join(download_path, '%(title)s.%(ext)s'), 'default_search': 'ytsearch', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([search_query]) if __name__ == "__main__": tracks = get_playlist_tracks(playlist_uri) os.makedirs(download_path, exist_ok=True) download_tracks(tracks, download_path)
-
וזה ליוטיוב ללא צורך בפיתון.
@echo off setlocal :: Check if yt-dlp.exe exists in the current directory if not exist yt-dlp.exe ( echo yt-dlp.exe not found. echo Downloading yt-dlp... :: Download yt-dlp.exe powershell -Command "Invoke-WebRequest -Uri 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe' -OutFile 'yt-dlp.exe'" :: Check if download was successful if not exist yt-dlp.exe ( echo Failed to download yt-dlp.exe. Exiting. exit /b 1 ) :: Move yt-dlp.exe to user's Downloads folder move /Y yt-dlp.exe "%USERPROFILE%\Downloads\yt-dlp.exe" :: Show popup info box mshta.exe "javascript:alert('yt-dlp.exe has been downloaded successfully! Credit @AngryAdminShmuel');window.close();" ) :: Prompt for YouTube playlist URL set /p playlistURL=Enter the YouTube playlist URL: :: Define the output directory and file name pattern set "output=Downloads\%(playlist_title)s\%(title)s.%(ext)s" :: Run yt-dlp to download the playlist yt-dlp --yes-playlist --output "%output%" "%playlistURL%" :: Check the success of the download if %ERRORLEVEL% equ 0 ( :: Flash green if successful echo Download successful! echo. echo [42m[97mSuccess[0m ) else ( :: Display error message if download fails echo Download failed. ) endlocal pause
-
וזה ליוטיוב ללא צורך בפיתון.
@echo off setlocal :: Check if yt-dlp.exe exists in the current directory if not exist yt-dlp.exe ( echo yt-dlp.exe not found. echo Downloading yt-dlp... :: Download yt-dlp.exe powershell -Command "Invoke-WebRequest -Uri 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe' -OutFile 'yt-dlp.exe'" :: Check if download was successful if not exist yt-dlp.exe ( echo Failed to download yt-dlp.exe. Exiting. exit /b 1 ) :: Move yt-dlp.exe to user's Downloads folder move /Y yt-dlp.exe "%USERPROFILE%\Downloads\yt-dlp.exe" :: Show popup info box mshta.exe "javascript:alert('yt-dlp.exe has been downloaded successfully! Credit @AngryAdminShmuel');window.close();" ) :: Prompt for YouTube playlist URL set /p playlistURL=Enter the YouTube playlist URL: :: Define the output directory and file name pattern set "output=Downloads\%(playlist_title)s\%(title)s.%(ext)s" :: Run yt-dlp to download the playlist yt-dlp --yes-playlist --output "%output%" "%playlistURL%" :: Check the success of the download if %ERRORLEVEL% equ 0 ( :: Flash green if successful echo Download successful! echo. echo [42m[97mSuccess[0m ) else ( :: Display error message if download fails echo Download failed. ) endlocal pause
-
חחחח
גוגל טרנסלייט מתרגם גם סלנג...
התלבטתי אם לכתוב מקודם "זה קובץ BAT יעני?" אבל ויתרתי...
עריכה:
פשוט הצחיק אותי שכתבת ייפ (או באנגלית YUP) ואנחנו דוברי העברית צריכים להבין (תכלס' הבנתי אבל...) ואז עוד יותר הצחיק אותי שהטרנסלייט מתרגם את זה ל'כן' (הצילום מסך היה אחרי התרגום...)
-
@2580
נסה את זה. לא ניסיתי את זה עדייןזה נראה כאילו זה עובד "עשה עם chatgpt" - לא עם פקודה אחת. אבל עם 10 דקות של עריכה... זה אמור לעבוד
-
חחחח
גוגל טרנסלייט מתרגם גם סלנג...
התלבטתי אם לכתוב מקודם "זה קובץ BAT יעני?" אבל ויתרתי...
עריכה:
פשוט הצחיק אותי שכתבת ייפ (או באנגלית YUP) ואנחנו דוברי העברית צריכים להבין (תכלס' הבנתי אבל...) ואז עוד יותר הצחיק אותי שהטרנסלייט מתרגם את זה ל'כן' (הצילום מסך היה אחרי התרגום...)
אחי ברצינות חשבת שאני לא יודע להגיד כן בעברית?! הוספתי את האימוג'י בעצמי. בנוסף Google translate מבאס, אני עורך כל פוסט אחרי התרגום. כמו כן, אני משתמש באפליקציית mitmachim שאין לה Google translate. אני יכול להבין עברית אבל לא יכול לדבר שוטף
-
@יוסף-אלחנן כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
@יאנג-בוי
זהו, שאתה צריך לתייג את GPT לשאלה הזו...
זה לא היה אוקוס פוקוס כמו שחושבים זה לקח לי כמה שעות של ישיבה מול GPT
@hartkhartk כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
זה לא היה אוקוס פוקוס כמו שחושבים זה לקח לי כמה שעות של ישיבה מול GPT
מתנצל...
חשבתי שהעתקת את זה בלי לחשוב או לנסות...
לצערינו, יש הרבה כאלו...
-
וזה ליוטיוב ללא צורך בפיתון.
@echo off setlocal :: Check if yt-dlp.exe exists in the current directory if not exist yt-dlp.exe ( echo yt-dlp.exe not found. echo Downloading yt-dlp... :: Download yt-dlp.exe powershell -Command "Invoke-WebRequest -Uri 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe' -OutFile 'yt-dlp.exe'" :: Check if download was successful if not exist yt-dlp.exe ( echo Failed to download yt-dlp.exe. Exiting. exit /b 1 ) :: Move yt-dlp.exe to user's Downloads folder move /Y yt-dlp.exe "%USERPROFILE%\Downloads\yt-dlp.exe" :: Show popup info box mshta.exe "javascript:alert('yt-dlp.exe has been downloaded successfully! Credit @AngryAdminShmuel');window.close();" ) :: Prompt for YouTube playlist URL set /p playlistURL=Enter the YouTube playlist URL: :: Define the output directory and file name pattern set "output=Downloads\%(playlist_title)s\%(title)s.%(ext)s" :: Run yt-dlp to download the playlist yt-dlp --yes-playlist --output "%output%" "%playlistURL%" :: Check the success of the download if %ERRORLEVEL% equ 0 ( :: Flash green if successful echo Download successful! echo. echo [42m[97mSuccess[0m ) else ( :: Display error message if download fails echo Download failed. ) endlocal pause
-
@TripleU
עובד בנטפרי?הוא נותן לי שגיאת SSL
-
@יוסף-אלחנן
לא. וגם הסקריפט השני של python לא עובד עם נטפרי. (למיטב ידעתי. יכול להיות שאני טועה.)@TripleU כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
וגם הסקריפט השני של python לא עובד עם נטפרי.
של ספוטיפיי?
בטח... -
@TripleU כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
וגם הסקריפט השני של python לא עובד עם נטפרי.
של ספוטיפיי?
בטח... -
@יוסף-אלחנן
לא. וגם הסקריפט השני של python לא עובד עם נטפרי. (למיטב ידעתי. יכול להיות שאני טועה.)@TripleU ברור לכן גם אותו לא ניסיתי
@יוסף-אלחנן כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
הוא נותן לי שגיאת SSL
נראה לי זה שגיאה של תעודת אבטחה...
-
@TripleU ברור לכן גם אותו לא ניסיתי
@יוסף-אלחנן כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
הוא נותן לי שגיאת SSL
נראה לי זה שגיאה של תעודת אבטחה...
@2580 לאוו דווקא תעודה, אלא הרבה דברים שקשורים לסינון.
כמו קובץ דרייב שחסום בנטפרי, כשאני מנסה להוריד הוא נותן לי שגיאה SSL...לכן שאלתי
@יוסף-אלחנן כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:@TripleU
עובד בנטפרי? -
בס"ד
מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון
שימו לב- זה שיטה מאוד מסובכת בפעם הראשונה אבל חינמית יעילה ואוטומטית מאוד לאחר ההגדרה הראשונית
- זה מוריד מיוטיוב לפי הרשימה של הפלייליסט ספוטיפיי
- קרדיט . צ'אט GPT
1
דבר ראשון יש להתקין את פייתון. כנסו לכתובת https://www.python.org
כנסו ל downloads \ הורדות
תורידו ותתקינו עם הרשאת מנהל המערכת כולל כל האפשרויות
2
תכנסו לאתר של ספוטיפיי למפתחים בכתובת https://developer.spotify.com
תצטרפו לספוטיפיי למפתחים עם החשבון ספוטיפיי שלכם
ולאחר מכן כנסו לקישור
https://developer.spotify.com/dashboardלחץ על צור אפליקציה
בשם האפליקציה תכתבו מה שאתם רוצים
וכן בתיאור האפליקציה תכתבו מה שאתם רוצים.
לשורה כתובת URL להפניה מחדש תעתיקו את זה
http://localhost:8888/callback
ותדביקו בשורה כתובת URL להפניה מחדש
תלחצו על הוסף בשורה כתובת URL להפניה מחדש
ולמטה תלחצו save\להציל3
תחפשו באתחל CMD או שורת הפקודה ותפתחו
זה החלון שיפתחתעתיקו את השורה הבא : pip install spotipy ותדביקו בשורת הפקודה ולחצו ENTER (הבא)
יתחיל לרוץ שורות את ששורת הפקודה תגמור את ההתקנה
כשיחזור שוב שורה זאת c:\users\שם המשתמש שלכם
וכעת תעתיקו את השורה הבא : pip install yt-dlp בשורת הפקודה ולחצו ENTER (הבא)
יתחיל לרוץ שורות את ששורת הפקודה תגמור את ההתקנה4
תחפשו באתחל IDLE ותפתחו אותוכנסו ל file ושם כנסו ל new file
תעתיקו את הקטע קוד הבא
import spotipy from spotipy.oauth2 import SpotifyOAuth import json # הגדרות ספוטיפיי SPOTIPY_CLIENT_ID = 'הכנס מזהה לקוח' SPOTIPY_CLIENT_SECRET = 'הכנס סוד הלקוח' SPOTIPY_REDIRECT_URI = 'http://localhost:8888/callback' SCOPE = 'playlist-read-private' sp_oauth = SpotifyOAuth(SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI, scope=SCOPE) def get_playlist_tracks(playlist_uri): sp = spotipy.Spotify(auth_manager=sp_oauth) playlist_tracks = sp.playlist_tracks(playlist_uri) tracks = [] for item in playlist_tracks['items']: track = item['track'] track_info = f"{track['name']} - {track['artists'][0]['name']}" tracks.append(track_info) return tracks if __name__ == "__main__": playlist_uri = 'הכנס קישור לשיר או לפלייליסט' tracks = get_playlist_tracks(playlist_uri) with open('tracks.txt', 'w', encoding='utf-8') as f: for track in tracks: f.write(f"{track}\n") import yt_dlp import os def download_tracks(tracks_file, download_path): # יצירת תיקיית ההורדות אם לא קיימת if not os.path.exists(download_path): os.makedirs(download_path) with open(tracks_file, 'r', encoding='utf-8') as file: tracks = file.readlines() for track in tracks: track = track.strip() search_query = f"{track}" ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': os.path.join(download_path, '%(title)s.%(ext)s'), 'default_search': 'ytsearch', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([search_query]) if __name__ == "__main__": download_path = 'הכניסו נתיב למקום הורדת הקבצים' # שנה לנתיב הרצוי שלך download_tracks('tracks.txt', download_path)
ותדביקו בחלון שנפתח (אחרי file. ו new file)
כנסו שוב לכתובת
https://developer.spotify.com/dashboard
כנסו לאפליקציה שיצרתם בשלב 3כנסו להגדרות
לחץ הצג סוד לקוח
תעתיקו את התוכן של מזהה לקוח ואת התוכן של סוד לקוח (מה שבתוך הריבוע בתמונה)
בקטע קוד הזה
# הגדרות ספוטיפיי SPOTIPY_CLIENT_ID = 'הכנס מזהה לקוח' SPOTIPY_CLIENT_SECRET = 'הכנס סוד הלקוח' SPOTIPY_REDIRECT_URI = 'http://localhost:8888/callback' SCOPE = 'playlist-read-private'
צריך לשנות את זה
את הכנס מזהה לקוח לשנות לתוכן של מזהה לקוח שהעתקנו לפני
שים לב שזה יהיה בתוך ' ' (גרש בודד משני הכיוונים)את הכנס סוד לקוח לשנות לתוכן של סוד לקוח שהעתקנו לפני
שים לב שזה יהיה בתוך ' ' (גרש בודד משני הכיוונים)בשורת הקוד הזה
**SPOTIPY_REDIRECT_URI = 'http://localhost:8888/callback**'
תבדוק שהכתובת שכתוב כאן זה אותו דבר בדיוק ממה שמופיע באפליקציה שבספוטיפיי למפתחים בשורה כתובת URL להפניה מחדש שים לב שזה יהיה בתוך ' ' (גרש בודד משני הכיוונים)
בקטע קוד הזה
if __name__ == "__main__": playlist_uri = 'הכנס קישור לשיר או לפלייליסט' tracks = get_playlist_tracks(playlist_uri) with open('tracks.txt', 'w', encoding='utf-8') as f: for track in tracks: f.write(f"{track}\n")
צריך לשנות את זה
את הכנס קישור לשיר או לפלייליסט לשנות לקישור של ספוטיפיי
(אבל איך מוצאים את הקישור?!)
איך מוצאים את הקישור לשיר או לפליייליסט של ספוטיפיי?
נכנסים לספוטיפיי נכנסים לשיר או לפלייליסטלוחצים ... (שלוש נקודות) שיתוף והעתקת הקישור שים לב שזה יהיה בתוך ' ' (גרש בודד משני הכיוונים)
בקטע קוד הזהif __name__ == "__main__": download_path = 'הכניסו נתיב למקום הורדת הקבצים' # שנה לנתיב הרצוי שלך download_tracks('tracks.txt', download_path)*
צריך לשנות את זה
את הכניסו נתיב למקום הורדת הקבצים לשנות לנתיב ההורדה
שימו לב! יש להפוך את ה סלשים זה מגיע כך \ וצריך לשנות את כולם ל /
(אבל איך כותבים נתיב?!)
איך כותבים נתיב? נכנסים בסייר הקבצים אל המקום הרצוילוחצים על השורה המסומנת ומעתיקים וזהו יש לכם נתיב
תלחצו F5 ותלחצו כן ותבחרו היכן לשמור את הקובץ קוד פייתון וזה ירוץ ויוריד את הקישור ששמתם במיקום ששמתם
בפעם הבא זה כבר פשוט נגשים לקובץ קוד פייתון מחליפים את הקישור ואת הנתיב ושוב F5 ומריצים והקישור ששמתם ירד למיקום ששמתם
@hartkhartk הוספתי (כלומר בעצלותי ביקשתי מGPT) פונקציות לinput אין לי מושג אם זה עובד כפי שכתבתי יש לי נטפרי אז מי שיכול שיבדוק...
import spotipy from spotipy.oauth2 import SpotifyOAuth import json import yt_dlp import os # קבלת הגדרות ספוטיפיי מהמשתמש SPOTIPY_CLIENT_ID = input("הכנס מזהה לקוח של ספוטיפיי: ") SPOTIPY_CLIENT_SECRET = input("הכנס סוד הלקוח של ספוטיפיי: ") SPOTIPY_REDIRECT_URI = input("הכנס URI להפניה של ספוטיפיי: ") SCOPE = 'playlist-read-private' sp_oauth = SpotifyOAuth(SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI, scope=SCOPE) def get_playlist_tracks(playlist_uri): sp = spotipy.Spotify(auth_manager=sp_oauth) playlist_tracks = sp.playlist_tracks(playlist_uri) tracks = [] for item in playlist_tracks['items']: track = item['track'] track_info = f"{track['name']} - {track['artists'][0]['name']}" tracks.append(track_info) return tracks if __name__ == "__main__": playlist_uri = input("הכנס קישור לפלייליסט של ספוטיפיי: ") tracks = get_playlist_tracks(playlist_uri) with open('tracks.txt', 'w', encoding='utf-8') as f: for track in tracks: f.write(f"{track}\n") def download_tracks(tracks_file, download_path): # יצירת תיקיית ההורדות אם לא קיימת if not os.path.exists(download_path): os.makedirs(download_path) with open(tracks_file, 'r', encoding='utf-8') as file: tracks = file.readlines() for track in tracks: track = track.strip() search_query = f"{track}" ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': os.path.join(download_path, '%(title)s.%(ext)s'), 'default_search': 'ytsearch', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([search_query]) if __name__ == "__main__": download_path = input("הכניסו נתיב למקום הורדת הקבצים: ") download_tracks('tracks.txt', download_path)
-
@TripleU כתב במדריך | מדריך להורדת שירים ופלייליסטים מספוטיפיי דרך יוטיוב באמצעות סקריפט פייתון:
וגם הסקריפט השני של python לא עובד עם נטפרי.
של ספוטיפיי?
בטח... -
@יוסף-אלחנן
היוצר אומר שזה לא עובד עם -
@TripleU
is it you or the GPT מפתח The?