Mediaset Infinity Downloader เป็นไลบรารี typescript สำหรับดาวน์โหลดภาพยนตร์หรือละครโทรทัศน์ของ Mediaset Infinity ใช้ yt-dlp เพื่อดาวน์โหลดตอนจริง
หากต้องการใช้ mediaset-infinity-downloader ให้โคลน repo และ cd นี้ลงในโฟลเดอร์ที่โคลน จากนั้นคุณจะต้องติดตั้งแพ็คเกจที่จำเป็น
# ติดตั้ง typescript runnernpm install --global ts-node# ติดตั้งแพ็คเกจโครงการ npm install
ทำให้สคริปต์เข้าถึง yt-dlp
ได้:
ดาวน์โหลดไฟล์ปฏิบัติการ (สำหรับเครื่องของคุณ)
ใส่ไฟล์ปฏิบัติการลงในโฟลเดอร์ src/executables
ปรับแต่งไฟล์ src/user/config.ts
ของคุณเพื่อให้แน่ใจว่า ytDlpPath
ถูกต้องและมี outputFolder
อยู่
กรอก src/user/episodes.ts
ด้วยอาร์เรย์สตริงที่มีหน้าตอนหรือภาพยนตร์ ตัวอย่างด้านล่าง
ค่าเริ่มต้นการส่งออก [ 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-243_F311851102010702', 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-242_F311851102010602',];
# cd ลงในโฟลเดอร์โปรเจ็กต์ cd mediaset-infinitry-downloader# รัน scriptnpm run start
ตามค่าเริ่มต้น yt-dlp จะใช้ชื่อที่ .mp4 ที่คุณกำลังจะดาวน์โหลดเป็นชื่อไฟล์เอาต์พุตที่ฉันเพิ่มไว้ในการกำหนดค่าเป็นวิธีการเปลี่ยนเอาต์พุตของชื่อไฟล์โดยทางโปรแกรม ทำตามขั้นตอนด้านล่างเพื่อใช้งาน
เปิดใช้งาน customOutputName
ใน src/user/config.ts
ปรับ customOutputNameFunction
เพื่อส่งออกสตริงที่จะใช้เป็นชื่อไฟล์สำหรับองค์ประกอบที่เกี่ยวข้องในอาร์เรย์โดยอัตโนมัติ
ง่ายที่สุด ปลอดภัยที่สุด แต่ใช้เวลานานที่สุด
เปิดหน้าแต่ละตอนและคัดลอกลิงก์ด้วยตนเอง
เพิ่มลงในอาร์เรย์ episodes.ts
ที่ล้อมรอบด้วยเห็บ
มีแนวโน้มที่จะล้มเหลวมากที่สุด (หาก mediasetinfinity เปลี่ยนโครงสร้างเพจ) แต่เร็วที่สุด
เลื่อนไปที่ด้านล่างของหน้ารายการตอน
เปิดคอนโซลของเบราว์เซอร์และวางสำเนา js นี้ copy($$('a[href*="/video/"]').map((x)=>x.href))
คุณจะพบลิงก์อาร์เรย์ของทุกตอนในคลิปบอร์ด
วางอาร์เรย์ของตอนลงในไฟล์ episodes.ts
น่าเชื่อถือที่สุด (ต้องอาศัยความเชี่ยวชาญบางประการ)
เปิดหน้ารายการตอน (ตัวอย่าง: https://mediasetinfinity.mediaset.it/fiction/bitterlands/episodi_SE000000001766,ST000000003181,sb100018308)
เปิด devtools และไปที่แท็บเครือข่าย
เลื่อนไปที่ด้านล่างของหน้า
คุณจะเห็นคำขอ type:'fetch'
ปรากฏขึ้นชื่อ mediaset-prod-all-programs-v2
คลิกขวา จากนั้น Copy > Copy as fetch
ไปที่แท็บคอนโซลของ devtools
วางการดึงข้อมูลที่คัดลอกไว้ (ตัวอย่างด้านล่าง)
fetch("https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs-v2?byCustomValue={subBrandId} {100018308}&sort=:publishInfo_lastPublished|desc,tvSeasonEpisodeNumber|desc&range= 1-1000", {"ส่วนหัว": { "ยอมรับ": "*/*", "ยอมรับภาษา": "it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7", "sec-ch-ua": ""Not.A/Brand";v="8", "โครเมียม";v="114", "Google Chrome";v="114"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": ""Windows"", "sec-fetch-dest": "ว่างเปล่า", "sec-fetch- mode": "cors", "sec-fetch-site": "cross-site"}, "ผู้อ้างอิง": "https://mediasetinfinity.mediaset.it/", "referrerPolicy": "แหล่งกำเนิดที่เข้มงวดเมื่อข้ามแหล่งกำเนิด", "ร่างกาย": null, "วิธีการ": "GET", "โหมด": "cors", "ข้อมูลรับรอง": "ละเว้น"});
แก้ไข range
queryParam เป็นตัวเลขใด ๆ ที่คุณต้องการ (ในตัวอย่างด้านบนฉันแก้ไขเป็น 1 ถึง 1,000)
เรียกใช้ fetch
โดยกด Enter
กลับไปที่แท็บเครือข่าย
เลือกคำขอที่เราเพิ่งทำและในแท็บแสดงตัวอย่าง entries
คลิกขวาที่แล้วกด Copy value
วางอาร์เรย์ของตอนลงในไฟล์ episodes.ts