לא פעם אני רוצה להוריד סרטון מיוטיוב, בעיקר בשביל צפייה או האזנה ללא חיבור לאינטרנט. בעבר הייתי משתמש באתרים שמורידים את הסרטון וגם ממירים אותו אבל לאחרונה רבים מהאתרים האלה הפסיקו לעבוד בגלל שגוגל לא אוהבים אותם וחוסמים או תובעים אותם.
לכן עדיף לא להיות תלויים באתר צד שלישי וכדאי להכיר את youtube-dl שמאפשרת להוריד ישירות למחשב כולל המרה של הקובץ. השימוש נעשה דרך שורת הפקודה. יתרון של התכנה על האתרים הנ"ל שהיא יכולה להוריד כמה סרטונים לפי רשימה או משתמש.
הורדת סרטון:
youtube-dl http://www.youtube.com/watch?v=eRsGyueVLvQ
הורדת סרטונים מרשימה:
youtube-dl http://www.youtube.com/playlist?list=PL6B3937A5D230E335
כדי להגביל את מספר הסרטונים שיירדו נשתמש בפרמטר max-downloads:
youtube-dl --max-downloads 2 http://www.youtube.com/playlist?list=PL6B3937A5D230E335
בצורה פשוטה כזו הסרטונים יורדים בתור קובץ flv, כדי להוריד סוג קובץ אחר נשתמש בעוד פקודות.
נמצא את הסוגים הנתמכים:
youtube-dl -F http://www.youtube.com/watch?v=eRsGyueVLvQ
[youtube] Setting language
[youtube] eRsGyueVLvQ: Downloading video webpage
[youtube] eRsGyueVLvQ: Downloading video info webpage
[youtube] eRsGyueVLvQ: Extracting video information
Available formats:
38 : video [3072x4096]
37 : mp4 [1080x1920]
46 : webm [1080x1920]
22 : mp4 [720x1280]
45 : webm [720x1280]
35 : flv [480x854]
44 : webm [480x854]
34 : flv [360x640]
18 : mp4 [360x640]
43 : webm [360x640]
5 : flv [240x400]
17 : mp4 [144x176]
ונבחר להוריד mp4 ברזולוציה גבוהה:
youtube-dl -f 37 http://www.youtube.com/watch?v=eRsGyueVLvQ
כדי להמיר ל-mp3 יש שתי דרכים. הדרך הפשוטה משתמשת באפשרות של התכנה. החיסרון שלה הוא שהקובץ יורד ורק אחר כך מומר ל-mp3 מה שלוקח יותר זמן ותופס הרבה נפח על הכונן.
youtube-dl --audio-format mp3 --extract-audio http://www.youtube.com/watch?v=eRsGyueVLvQ
הדרך המתוחכמת יותר היא להשתמש ב-pipe עם ffmpeg:
youtube-dl -q -o - | ffmpeg -i - "output.mp3"
q אומר לא להדפיס את הפלט למסוף, o – אומר להעביר את הפלט ל-pipe, ו-i – אומר לקבל את הקלט מ-pipe. כמובן שאפשר להוסיף עוד הגדרות של ffmpeg כמו איכות ההמרה וסוג הקובץ.
ואם לא צפיתם עדיין אתם מוזמנים לצפות בסרט החופשי והמצוין סינטל שקישורים אליו מפוזרים בכל הדוגמאות.
הסקריפט הבא קצת פחות מתוחכם אבל עושה עבודה לא רעה (לפחות עשה כשבדקתי אותו):
javascript:isIE=/*@cc_on!@*/false;isIE ? tubeDoc=document.getElementById('movie_player').getElementsByTagName('param')[1].value:tubeDoc=document.getElementById("movie_player").getAttribute("flashvars");w=tubeDoc.split("&");for(i=0;i<=w.length-1;i++)if(w[i].split("=")[0] == "url_encoded_fmt_stream_map"){links=unescape(w[i].split("=")[1]);break;}splitValues = links.split(",url=");for(i=0;i<=splitValues.length-1;i++){val=splitValues[i].split("|")[0];if ((val.indexOf("flv") > 0) && (val.indexOf("large") <= 0) && (val.indexOf("medium") <= 0)){if (val.indexOf("rl=") > 0){url = val.substring(4,val.indexOf("fallback_host")-1);url = unescape(unescape(url));break;}else{url = val.substring(0,val.indexOf("fallback_host")-1);url = unescape(unescape(url));break;}}}combineurl = url;combineurl = combineurl + '&title=' + document.title;window.location.href = combineurl;
תודה על השיתוף, לגבי "תופס יותר נפח על הכונן", מה זה משנה אם זה קודם יורד ואח"כ מומר לשמע או שתוך כדי הורדתו הוא מומר? אני יכול להבין שזה חוסך את זמן הקידוד כי זה נעשה במקביל, אבל איך זה קשור לנפח?
@ירון, אני מקבל שגיאה במסוף ReferenceError: url is not defined גם בפיירפוקס וגם בכרומיום.
@אריאל, בצורה כזו הווידאו בכלל לא יורד לכונן אלא לזיכרון בלבד ועל הכונן נשמר רק השמע. בשיטה הפשוטה יורדים גם הווידאו וגם השמע.
@חתול, האפשרות –extract-audio מוחקת אוטומטית את קובץ הוידאו אחרי ההמרה, כך שבאמת אין הבדל מבחינת מקום על הכונן/זכרון.
מה דעתך להריץ מבחן ולהשוות את מהירות הקידוד ראש בראש, פייפ ל-ffmpeg מול extract-audio. הבעיה היא שזה גם תלוי במהירות הורדת הקובץ.
כן, אבל עד מחיקת הקובץ זה תופס מקום על הכונן. משמעותי בהרצאות של כמה שעות ובמחשב עם מעט שטח פנוי כמו אצלי.
אז אם אני מבין נכון, הוא מוריד כל פעם קטע וידאו, ממיר לשמע בזמן אמת ונפטר מהקטע באופן מיידי?
הוא מחזיק את קטע קצר של הווידאו בזיכרון ה-rom, כמו כל pipe בלינוקס או משהו כזה. אני מניח שטכנית לא תיארתי את זה נכון.
תודה מדריך מצוין
אני פותח תתוכנה והיא מיד קורסת
ל־youtube-dl אין ממשק גרפי ולכן לא יכול להיות שהיא קורסת. אתה כנראה מתכוון לתוכנה אחרת.
חתול, בחלונות יש את Youtube-dl-gui שכן יש לה ממשק גרפי והיא מבוססת על youtube-dl.
כנראה לזה הוא התכוון
יכול להיות, אבל אני לא מכיר אותה ולא יכול לעזור ובכלל לא משתמש בווינדוס.