เรื่องนี้สุ่มเสี่ยงที่จะผิดกฏหมาย ถึงแม้จะนำมาใช้งานส่วนตัวผมก็ไม่แน่ใจนัก แต่อย่างน้อยเรามาตกลงกันก่อนว่าเราจะดาวน์โหลดแค่งานที่เป็นสาธารณะ และศึกษาการใช้งานทูลนี้เท่านั้น (ตัดความรับผิดชอบเรียบร้อย) บทความนี้จะแสดงตัวอย่างการดาวน์โหลดวิดีโอจากเว็บต่างๆ อย่างเช่น youtube, udemy, facebook นะครับ โดยเราจะใช้โปรแกรม youtube-dl ในการดาวน์โหลด และใช้ ffmpeg ในการแปลงฟอร์แมตของไฟล์ จริงๆ ตัว youtube-dl มันก็มีให้ใส่พารามิเตอร์ให้เลือกฟอร์แมตของไฟล์นะครับ แต่สุดท้ายมันก็ไปเรียกใช้ ffmpeg ต่ออยู่ดี ซึ้งขั้นตอนในการแปลงฟอร์แมตเนี้ยก็ใช้เวลานานพอสมควร งั้นผมเลยแยกขั้นตอนการดาวน์โหลดและการแปลงฟอร์แมตของไฟล์วิดีโอออกจากกัน โดยเริ่มจากดาวน์โหลดวิดีโอมาก่อน จากนั้นค่อยมาทำการแปลงฟอร์แมตของไฟล์อีกที
ในขั้นตอนการติดตั้งจะแนะนำเฉพาะบน Windows เท่านั้นนะครับ สำหรับผู้ที่ใช้ Linux น่าจะมีพื้นฐานมากกว่าอยู่แล้ว และขั้นตอนการติดตั้งก็ไม่ยากนักคิดว่าคงทำกันได้หมด
ติดตั้ง youtube-dl โดยให้เข้าไปดาวน์โหลดที่ https://rg3.github.io/youtube-dl/ ให้คลิกไปที่เมนู Download และเลือก youtube-dl.exe หลังจากดาวน์โหลด ให้นำไปไว้ที่ c:\youtube-dl\
ติดตั้ง FFmpeg โดยเข้าไปที่ https://ffmpeg.org/download.html และเลือก Windows Packages จะมีลิงค์ไปหน้าดาวน์โหลดสำหรับ Windows ที่ https://ffmpeg.zeranoe.com/builds/ เมื่อดาวน์โหลดมาแล้วให้ unzip และนำไปไว้ที่ c:\ffmpeg\
จากนั้นทำการคอนฟิก Enviroment Variable Path ของ windows โดยให้เข้าไปที่ Control Panel -› System and Security -› System -› Advanced system Setting และเลือกที่ Enviroment Variables
ในส่วนของ System variables ให้เลือกไปที่ Path และเลือก Edit
ทำการเพิ่ม path ของ youtube-dl และ ffmpeg เข้าไปดังรูป
เมื่อเรียบร้อยแล้วให้ลองเปิด command และพิมพ์คำสั่งดังต่อไปนี้ เพื่อตรวจสอบ version กันก่อน ถ้าทุกอย่างเรียบร้อย น่าจะขึ้นประมาณนี้
1 2 | youtube-dl --version ffmpeg -version |
และก่อนใช้งานทุกครั้งเราควรสั่ง youtube-dl -U เพื่อทำการ update โปรแกรมให้เป็น version ใหม่สุดอยู่เสมอ
สำหรับการดาวน์โหลดวิดีโอจาก youtube เราสามารถโหลดได้ทั้งแบบเป็น playlist และที่เป็นวิดีโอเดี่ยวๆ โดยสามารถใช้คำสั่งได้ดังต่อไปนี้
แบบเป็น playlist
1 | youtube-dl --no-check-certificate --ignore-errors "https://www.youtube.com/playlist?list=PL6B3937A5D230E335" |
แบบแยกเป็นรายวิดีโอ
1 | youtube-dl --no-check-certificate "https://www.youtube.com/watch?v=YE7VzlLtp-4" |
สำหรับ facebook ก็สามารถโหลดได้เช่นกันโดยใช้คำสั่งดังต่อไปนี้
1 | youtube-dl --no-check-certificate "https://www.facebook.com/DevExp/videos/1378097708883662/" |
และสำหรับวิดีโอที่เราซื้อคอร์สออนไลน์ไว้บน udemy เราสามารถโหลดทั้งคอร์สมาได้ โดยใช้คำสั่งดังต่อไปนี้
1 | youtube-dl -u username -p password -o "%(chapter_number)s-%(chapter)s/%(autonumber)s-%(title)s.%(ext)s" "https://www.udemy.com/java-tutorial/" |
ในกรณีที่ดาวน์โหลดวิดีโอลงมาแล้ว ไฟล์ที่ได้อาจจะเป็นไฟล์ .mkv หรือนามสกุลอื่นๆ เราสามารถทำการแปลงฟอร์แมตของไฟล์ได้โดยใช้ ffmpeg โดยให้สร้างโฟลเดอร์ใหม่ขึ้นมาก่อน ในที่นี้ผมจะตั้งชื่อโฟลเดอร์ว่า new-mp4 เอาไว้เก็บไฟล์ที่ได้จากการแปลง และใช้คำสั่งสำหรับการแปลงเป็น mp4 ดังนี้
1 | ffmpeg -i old-video-file.mkv -vcodec libx264 -profile:v high -acodec aac ./new-mp4/new-video-file.mp4 |
หรือหากว่าต้องการแปลงทั้งโฟลเดอร์ให้ใช้คำสังดังต่อไปนี้
1 | FOR /F "tokens=*" %G IN ('dir /b *') DO ffmpeg -i "%G" -vcodec libx264 -profile:v high -acodec aac "./new-mp4/%~nG.mp4" |
อ้างอิง: https://github.com/rg3/youtube-dl/blob/master/README.md