แอปที่ใช้บรรทัดคำสั่ง/เทอร์มินัลที่เขียนใน Go เพื่อดาวน์โหลดวิดีโอสั้นและวิดีโอโดยใช้ URL/ID ของ YouTube
หมายเหตุ : หากคุณกำลังมองหาเครื่องมือที่พร้อมใช้งาน โปรดตรวจสอบปัญหาที่ปักหมุดไว้สำหรับ repo นี้
การดาวน์โหลดวิดีโอสั้นและวิดีโอ YouTube
ความสามารถในการเลือกจากคุณภาพเนื้อหาที่แตกต่างกัน
ปัจจุบันโครงการมี 2 โครงการ ได้แก่
tview - ไลบรารี Terminal UI พร้อมวิดเจ็ตแบบโต้ตอบที่หลากหลาย - เขียนด้วย Golang
FFmpeg - เฟรมเวิร์กมัลติมีเดียข้ามแพลตฟอร์มชั้นนำ ควรติดตั้งในระบบหรืออย่างน้อยก็มีไบนารีแบบคงที่ล่าสุดในไดเรกทอรีรากของโครงการ เป็นการ พึ่งพารันไทม์ภายนอก มากกว่า
เมื่อวาง YouTube Shorts/รหัสวิดีโอหรือ URL แอปจะดึงข้อมูลเมตาจาก API ภายในของ YouTube
จากนั้น แอปพลิเคชันจะดาวน์โหลดเนื้อหาสั้น/วิดีโอโดยส่งคำขอข้อมูลขนาดเล็กไปยัง URL เนื้อหาที่ดึงมา ทั้งนี้ขึ้นอยู่กับการเลือกคุณภาพสำหรับวิดีโอและเสียง
ท้ายที่สุด หากมี FFmpeg ไฟล์สตรีมวิดีโอและเสียงที่แยกจากกันจะถูกรวมเป็นไฟล์เอาต์พุตเดียว
หลังจากติดตั้ง Go ให้ป้อนคำสั่งด้านล่างจากรูทของโปรเจ็กต์
บนลินุกซ์/ยูนิกซ์
go build -o go_youtube_downloader ./cmd/go_youtube_downloader.go
บนวินโดวส์
go build -o go_youtube_downloader.exe ./cmd/go_youtube_downloader.go
หลังจากติดตั้ง Go ให้โคลน/ดาวน์โหลดโปรเจ็กต์นี้ & ป้อนคำสั่งด้านล่างจากรูทของโปรเจ็กต์
go run ./cmd/go_youtube_downloader.go
ระบบจะต้องติดตั้ง FFmpeg หรือมีไบนารีแบบคงที่ล่าสุดในไดเรกทอรีรากของโปรเจ็กต์เพื่อรวมสตรีมวิดีโอและเสียงที่ดาวน์โหลดแยกกันเป็นไฟล์เดียว
ไม่สามารถดาวน์โหลดวิดีโอ ที่มีการจำกัดอายุได้ เนื่องจากการเข้ารหัสลายเซ็นของ YouTube
YouTube มีการจำกัดแบนด์วิดท์สำหรับคำขอที่เข้ามาแต่ละรายการ ประมาณ 10 MB ต่อคำขอ หากคำขอใดๆ ได้รับข้อมูลเกินขีดจำกัดขนาดนี้ คำขอเพิ่มเติมจะควบคุมการดาวน์โหลดหรือการเชื่อมต่ออาจถูกยกเลิก ดังนั้น เพื่อให้ได้รับประสิทธิภาพที่ดีขึ้นเมื่อดาวน์โหลดข้อมูลและเขียนลงในไฟล์เอาท์พุต จึงแบ่งออกเป็นชิ้นเล็กๆ เพื่อความสอดคล้อง ขึ้นอยู่กับคุณภาพและขนาดที่เลือก เวลาในการดาวน์โหลดจะมากหรือน้อย
Reverse-Engineering YouTube: กลับมาอีกครั้ง - บล็อกที่อธิบาย API ภายในของ YouTube
YouTube-Internal-Clients - สคริปต์ Python ที่ค้นพบไคลเอนต์ YouTube API ที่ซ่อนอยู่ แค่โครงการวิจัย..
YT-DLP - ทางแยก youtube-dl พร้อมฟีเจอร์และการแก้ไขเพิ่มเติม
Youtubei - รับข้อมูล Youtube เช่น วิดีโอ เพลย์ลิสต์ ช่อง ข้อมูลวิดีโอและความคิดเห็น วิดีโอที่เกี่ยวข้อง วิดีโอถัดไป และอื่นๆ อีกมากมาย!
ดาวน์โหลดไฟล์อย่างมีประสิทธิภาพใน Golang: คู่มือฉบับสมบูรณ์
ตัวอย่างการดาวน์โหลดไฟล์ Golang
ทีมนิวไปป์
การดำเนินการคำสั่งขั้นสูงใน Go with os/exec