ดาวโหลด video จาก Udemy, Safari online ง่ายๆด้วย youtube-dl

Posted on
youtube-dl

เคยเขียน 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/

img

img2

ยังมี option อื่นๆอีกมากมาย เช่น อยากดาวโหลด video format ที่ไม่ใช่ตัวที่ดีที่สุดเพราะบางทีไฟล์มันอาจจะใหญ่มากเกินไป ศึกษาเพิ่มเติมกันเอาเองนะจ๊ะ ที่นี่เลย