เคยเขียน blog รวมสูตรหรือรวมคำสั่งที่ ให้ youtube-dl ช่วยโหลดไฟล์จาก youtube เอาไว้เมื่อนานมาแล้ว ตอนนี้ก็ยังใช้ youtube-dl อยู่นะ เพราะใช้มันดาวโหลด clip ที่ตัวแอพมือถือไม่ได้อนุญาตให้โหลด offline เอาไว้ได้ เลือก best video quality ก็ได้
ปีนี้มา revisit youtube-dl เวอร์ชั่นปัจจุบันกัน มันเจ๋งมาก ทำให้ชีวิตการเรียน online สบายขึ้นอีกเย๊อะ (เสียงสูง)
การเรียนผ่าน video clip online เป็นที่นิยมมากเลยช่วงปีที่ผ่านมา (ตั้งแต่ คศ.2015) มี Safari Online เกิด platform ใหม่ Udemy, Udacity ของ Google
ปัญหาที่คิดว่าคงจะมีคล้ายกับหลายๆคนคือ
- ไม่อยากต่อ internet ตลอดเวลาที่ดู
- อยากเก็บ video เหล่านั้นไว้ใน hard disk ส่วนตัวด้วย ไม่อยากเอาไว้ในระบบเค้าเพียงอย่างเดียว อย่าง udemy หากใช้ app มือถือเราจะสามารถดาวโหลด course ที่เราลงทะเบียนไว้เก็บเอาไว้ดูได้ Sarafi Online (ผม subscribe เป็นรายปีเอาไว้) ก็เพิ่งจะยอมให้โหลดเป็น offline เอาไว้ได้
- เราจะเอาไฟล์เหล่านั้นออกมาไม่ได้เลยหากมือถือไม่ได้ rooted หรือ jail break
แล้วก็มีน้องคนนึงมาบอกว่า พี่ youtube-dl มันใช้ดาวโหลดไฟล์จาก udemy ได้นะ โอ๊ว..ว สุดยอดไปเลย
บ่นมามากแล้วเข้าแก่นของโพสนี้กันดีกว่า ://)
youtube-dl ตัวล่าสุดนี้มันจะทำการ login account ของเวบระบบเรียนออนไลน์ให้เราได้ โหลดหลักสูตรมาเพื่อเอามาตั้งชื่อโฟลเดอร์ชื่อไฟล์ให้เราได้อัตโนมัติเลย
$ youtube-dl -u user -p password -o '~/MyVideos/%(playlist)s/%(chapter_number)s - %(chapter)s/%(autonumber)s-%(title)s.%(ext)s' https://www.udemy.com/java-tutorial/
อธิบายคือ
- ใช้ username password ของเวบ udemy แทนที่
-u
-p
ตามลำดับ - ให้ดาวโหลดไปเก็บไว้ที่ไหน ใช้
-o
- ให้ดาวโหลดไว้ใต้โฟลเดอร์ MyVideos ที่อยู่ภายใต้ home เรา
%(playlist)s
เอาชื่อวิชามาเป็นชื่อ folder%(chapter_number)s - %(chapter)s
ใส่เลขที่chapter และชื่อchapter เป็นโฟลเดอร์ย่อยลงมา%(autonumber)s-%(title)s.%(ext)s
ตั้งชื่อไฟล์ตามชื่อบทพร้อมนามสกุลของไฟล์นั้นด้วย%(autonumber)s-
ใส่เพื่อให้มันใส่เลขเรียงลำดับไฟล์ที่อยู่ในโฟลเดอร์เดียวกัน ไม่งั้นเราอาจจะไม่รู้ว่าดูไฟล์ไหนก่อน ไฟล์ไหนดูทีหลัง
ถ้าไม่อยากใส่ -u -p ให้เราสร้างไฟล์ .netrc ขึ้นมาใต้ home โฟลเดอร์ของเรา ~/.netrc
เนื้อหาเป็นแบบนี้
สำหรับเวบ udemy และ safari online ตามลำดับ
machine udemy login sirit**@gmail.com password 12345
machine safari login sirit**@gmail.com password 12345
อ่อ เราจะต้องเพิ่ม option --netrc
เข้าไปในคำสั่งด้วย เพื่อให้มันมาอ่านไฟล์นี้ของเรา
$ youtube-dl --netrc -o '~/MyVideos/%(playlist)s/%(chapter_number)s - %(chapter)s/%(autonumber)s-%(title)s.%(ext)s' https://www.udemy.com/java-tutorial/
youtube-dl จะเดาเพื่อโหลดไฟล์ video ที่มีคุณภาพที่ดีที่สุดให้เราเสมอโดยไม่ต้องใส่ option
ตัวอย่าง URL ของ Udemy และ Safari Online ที่จะ copy มาใส่ใน script youtube-dl
https://www.udemy.com/deploying-containerized-applications-technical-overview/
https://www.safaribooksonline.com/library/view/angular-2-crash/100000006A0434/
ยังมี option อื่นๆอีกมากมาย เช่น อยากดาวโหลด video format ที่ไม่ใช่ตัวที่ดีที่สุดเพราะบางทีไฟล์มันอาจจะใหญ่มากเกินไป ศึกษาเพิ่มเติมกันเอาเองนะจ๊ะ ที่นี่เลย