เครื่องมือดาวน์โหลดเพลงที่ใช้ qt เขียนด้วย python
หากคุณมีแนวคิดในการปรับปรุงหรือฟีเจอร์ สร้างปัญหาหรือเข้าร่วมเซิร์ฟเวอร์ Discord เพื่อหารือ!
ตรวจสอบให้แน่ใจว่าติดตั้ง ffmpeg, python3 และ Git แล้วและพร้อมใช้งานบน $PATH
ของคุณ หากคุณใช้ Windows คุณจะต้องติดตั้งเครื่องมือสร้าง Microsoft C++ และรีสตาร์ทคอมพิวเตอร์ก่อนเริ่มกระบวนการสร้าง
ดาวน์โหลดหรือโคลน repo git clone https://github.com/casualsnek/onthespot
นำทางไปยังไดเร็กทอรี onthespot cd onthespot
ติดตั้งแพ็คเกจ pip install -r requirements.txt
นำทางไปยังไดเร็กทอรีต้นทาง cd src
เปิดแอปพลิเคชันด้วย python3 -m onthespot
ข้อกำหนดเหมือนกับ "การเปิดตัวโดยไม่ต้องติดตั้ง" ข้างต้น
ดาวน์โหลดหรือโคลน repo git clone https://github.com/casualsnek/onthespot
นำทางไปยังไดเร็กทอรี onthespot cd onthespot
สร้างแพ็คเกจ python -m build
ติดตั้งแพ็คเกจ pip install ./dist/*.whl
เปิดแอปพลิเคชันด้วย onthespot_gui
onthespot
พร้อมใช้งานสำหรับการกระจายแบบอิง Arch linux และ Arch linux ในพื้นที่เก็บข้อมูลผู้ใช้แบบโค้ง (aur) เป็น onthespot-git
คุณสามารถติดตั้ง onthespot
โดยใช้ตัวช่วย Aur ที่คุณชื่นชอบ
เช่น การใช้ yay
yay -Sy onthespot-git
ดาวน์โหลด 'onthespot_linux' ล่าสุดจากส่วนการเปิดตัวและดำเนินการด้วย
chmod +x onthespot_linux ./onethespot_linux
ดาวน์โหลด 'onthespot_win_ffm.exe' หรือ 'onthespot_win.exe' ล่าสุดจากส่วน Release และดำเนินการโดยดับเบิลคลิกที่ไฟล์ที่ดาวน์โหลด
ไบนารีที่มีชื่อไฟล์ลงท้ายด้วย '_ffm' มี ffmpeg รวมอยู่ด้วย และไม่จำเป็นต้องติดตั้งด้วยตนเอง
หากคุณใช้ไบนารีที่ไม่ได้รวม ffmpeg และการดาวน์โหลดติดอยู่ที่ 99% โดยมีข้อความ Converting
ในความคืบหน้า แสดงว่าคุณพลาด ffmpeg ! กรุณาติดตั้งโดยทำตามคำแนะนำด้านล่าง
เปิด Windows Explorer แล้วไปที่ C:
Drive แล้วตั้งชื่อโฟลเดอร์ ffmpeg
ที่นั่น
ดาวน์โหลด ffmpeg zip จาก https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z จากนั้นคัดลอกโฟลเดอร์ bin
จาก zip ไปที่ C:ffmpeg
เปิด CMD ในฐานะผู้ดูแลระบบและรันคำสั่ง: setx /m PATH "C:ffmpegbin;%PATH%"
ตอนนี้แอปพลิเคชันควรทำงานได้ตามที่คาดไว้
การสร้างหรือบรรจุภัณฑ์บน OS ใดๆ จำเป็นต้องติดตั้ง Git, Python3 และ Pip ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไว้แล้ว!
เปิดเทอร์มินัลอีมูเลเตอร์แล้วรันคำสั่งต่อไปนี้เพื่อโคลนที่เก็บและสร้าง
git clone https://github.com/casualsnek/onthespotcd บน thespot
หากคุณต้องการบิลด์ที่มี ffmpeg ดาวน์โหลดไบนารี ffmpeg แบบฝังสำหรับระบบปฏิบัติการของคุณจากที่นี่ สร้างไดเร็กทอรีใหม่ชื่อ 'ffbin_nix' ในไดเร็กทอรีรากของที่เก็บ คัดลอกไฟล์สามไฟล์ 'ffmpeg', 'ffprobe', 'ffplay' จากไฟล์เก็บถาวรที่ดาวน์โหลดไปยังไดเร็กทอรี 'ffbin_nix' ที่สร้างขึ้นแล้วจึงรัน
ทุบตี ./build_linux.sh
หลังจากคำสั่งเสร็จสิ้น คุณควรมีไดเร็กทอรี 'dist' ในรูทของพื้นที่เก็บข้อมูลที่มีไบนารี 'onthespot_linux' ในตัว
เปิด cmd และรันคำสั่งต่อไปนี้เพื่อโคลนที่เก็บและสร้าง
git clone https://github.com/casualsnek/onthespotcd บน thespot
หากคุณไม่ได้ติดตั้ง git คุณยังสามารถดาวน์โหลดไฟล์ zip แหล่งที่มาของโครงการจาก github แตกไฟล์และเปิด cmd บนรูทของพื้นที่เก็บข้อมูล หากคุณต้องการบิลด์ที่มี ffmpeg ดาวน์โหลดไบนารี ffmpeg แบบฝังสำหรับระบบปฏิบัติการของคุณจากที่นี่ สร้างไดเร็กทอรีใหม่ชื่อ 'ffbin_win' ในไดเร็กทอรีรากของที่เก็บ คัดลอกไฟล์สามไฟล์ 'ffmpeg.exe', 'ffprobe.exe', 'ffplay.exe' จากไฟล์เก็บถาวรที่ดาวน์โหลดมาไปยังไดเร็กทอรี 'ffbin_win' ที่สร้างขึ้นจากนั้นจึงเรียกใช้
build_winC1.bat build_winC2.bat
หลังจากคำสั่งเสร็จสิ้น คุณควรมีไดเร็กทอรี 'dist' ในรูทของพื้นที่เก็บข้อมูลที่มีไบนารี 'onthespot_win.exe' ในตัว
หมายเหตุ: นี่เป็นเพียงการสร้างแอปสำหรับสถาปัตยกรรมโปรเซสเซอร์เฉพาะที่คุณใช้อยู่ มันไม่ได้สร้างไบนารีสากล
เปิดเทอร์มินัลอีมูเลเตอร์แล้วรันคำสั่งต่อไปนี้เพื่อโคลนที่เก็บและสร้าง
git clone https://github.com/casualsnek/onthespotcd บน thespot
หากคุณต้องการบิลด์ที่มี ffmpeg ดาวน์โหลดไบนารี ffmpeg แบบฝังสำหรับระบบปฏิบัติการของคุณจากที่นี่ สร้างไดเร็กทอรีใหม่ชื่อ 'ffbin_mac' ในไดเร็กทอรีรากของที่เก็บ คัดลอกไฟล์สามไฟล์ 'ffmpeg', 'ffprobe', 'ffplay' จากไฟล์เก็บถาวรที่ดาวน์โหลดไปยังไดเรกทอรี 'ffbin_mac' ที่สร้างขึ้นใหม่ จากนั้นเรียกใช้:
./build_mac.sh
หลังจากคำสั่งเสร็จสิ้น คุณควรมีไดเร็กทอรี 'dist' ในรูทของพื้นที่เก็บข้อมูลที่มีไบนารี 'onthespot_mac.app'
คุณยังสามารถสร้าง onthespot เป็น wheel และติดตั้งเป็นโมดูล python ผ่าน pip ในระบบของคุณ ให้การผสานรวมกับระบบได้ดียิ่งขึ้น เช่น การใช้สไตล์และธีม Qt ของระบบของคุณ ตลอดจนคุณสามารถใช้ไอคอนและไฟล์ .desktop ที่ให้มาเพื่อการผสานรวมที่ดีขึ้นภายใต้ระบบ linux
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเครื่องมือตั้งค่าแล้ว!
เปิดเทอร์มินัลอีมูเลเตอร์แล้วรันคำสั่งต่อไปนี้เพื่อโคลนที่เก็บและสร้าง
git clone https://github.com/casualsnek/onthespotcd บน thespot หลาม -m บิลด์
สิ่งนี้จะสร้างไดเร็กทอรี dist ที่มีไฟล์ .whl ซึ่งตอนนี้สามารถติดตั้งได้ด้วย pip แล้ว แอปพลิเคชันสามารถเปิดใช้งานได้ด้วยคำสั่ง onthespot_gui
หรือ python3 -m onthespot
หลังจากติดตั้ง !
หมายเหตุ : หากคุณบรรจุหีบห่อเพื่อจำหน่าย ให้คัดลอก src/onthespot/resources/icon.svg
ไปที่ /usr/share/icons/hicolor/scalable/apps/casual_onthespot.svg
หรือ $HOME/.local/share/icons/hicolor/scalable/apps/casual_onthespot.svg
และ src/onthespot/resources/org.eu.casualsnek.onthespot.desktop
ไปยัง /usr/share/applications/org.eu.casualsnek.onthespot.desktop
หรือ $HOME/.local/share/applications/org.eu.casualsnek.onthespot.desktop
ช่วยให้แอปพลิเคชันสามารถรวมเข้ากับสภาพแวดล้อมเดสก์ท็อปได้ดียิ่งขึ้น!
หากคุณมีแนวคิดในการปรับปรุง/ฟีเจอร์ ให้สร้างปัญหาหรือเข้าร่วมเซิร์ฟเวอร์ Discord เพื่อหารือกัน!
เมื่อเปิดแอปพลิเคชันเป็นครั้งแรก คุณจะได้รับคำเตือนว่าไม่มีการเพิ่มบัญชี Spotify ปิดคำเตือน และเพิ่มบัญชีของคุณที่ด้านล่างของแท็บการกำหนดค่า การมีหลายบัญชีจะช่วยให้คุณสามารถดาวน์โหลดหลายเพลงพร้อมกันได้
ในแท็บ "ค้นหา" คุณสามารถป้อนคำค้นหาของคุณ คลิก search
เพื่อค้นหาเพลง/ศิลปิน/อัลบั้ม/เพลย์ลิสต์ จากนั้นคุณสามารถดาวน์โหลดสื่อในรายการผลลัพธ์ได้โดยคลิกที่ปุ่ม download
หรือคุณสามารถดาวน์โหลดจำนวนมากได้โดยคลิกที่ปุ่มใดๆ ที่ด้านล่างของตาราง โปรดทราบว่าประเภทสื่ออื่นที่ไม่ใช่ 'แทร็ก' อาจใช้เวลาในการแยกวิเคราะห์และดาวน์โหลดนานกว่าเล็กน้อย แอปพลิเคชันอาจดูเหมือนค้างในสถานะนี้ !
ป้อน URL ในช่องค้นหา จากนั้นคลิกดาวน์โหลด คุณยังสามารถป้อนเส้นทางของไฟล์ข้อความที่มี URL และมันจะจัดคิว URL ทั้งหมดในนั้น! โปรดทราบว่าประเภทสื่ออื่นที่ไม่ใช่ 'แทร็ก' อาจใช้เวลาในการแยกวิเคราะห์และดาวน์โหลดนานกว่าเล็กน้อย แอปพลิเคชันอาจดูเหมือนค้างในสถานะนี้ !
สามารถดูสถานะการดาวน์โหลดและความคืบหน้าได้โดยไปที่แท็บ "ความคืบหน้า"
คนทำงานดาวน์โหลดสูงสุด : คือจำนวนเธรดที่จะใช้สำหรับการดาวน์โหลดสื่อ ตั้งค่านี้เป็นจำนวนบัญชีที่คุณเพิ่ม การเปลี่ยนการตั้งค่านี้จำเป็นต้องรีสตาร์ทแอปพลิเคชันจึงจะมีผล
Parsing Account SN : เป็นหมายเลขที่แสดงทางด้านซ้ายของชื่อผู้ใช้ในตารางบัญชี หมายเลขนี้เป็นบัญชีที่รับผิดชอบในการให้ผลการค้นหาและแยกวิเคราะห์ URL ดาวน์โหลด
ตำแหน่งดาวน์โหลด : โฟลเดอร์รูทที่เก็บสื่อที่ดาวน์โหลดไว้
ความล่าช้าในการดาวน์โหลด : เวลาเป็นวินาทีที่จะรอก่อนที่จะดาวน์โหลดครั้งต่อไปหลังจากการดาวน์โหลดสำเร็จ
ลองใหม่สูงสุด : จำนวนครั้งในการลองดาวน์โหลดอีกครั้งก่อนที่จะดำเนินการต่อ
ผลลัพธ์การค้นหาสูงสุด : จำนวนรายการที่จะแสดงในผลการค้นหาสำหรับสื่อแต่ละประเภท ตัวอย่าง: การตั้งค่าเป็น '1' จะแสดงผลหนึ่งรายการสำหรับศิลปิน อัลบั้ม แทร็ก และเพลย์ลิสต์ ซึ่งส่งผลให้มีผลการค้นหาทั้งหมด 4 รายการ
การดาวน์โหลดสื่อดิบ : ดาวน์โหลดไฟล์ (จะเป็น .ogg) ลงดิสก์โดยไม่ต้องแปลงเป็นรูปแบบสื่อที่กำหนด และยังปิดใช้งานการเขียนข้อมูลเมตาและการฝังภาพขนาดย่ออีกด้วย
Force premium : ใช้สิ่งนี้หากบัญชีพรีเมียมของคุณแสดงฟรีในตารางบัญชี สิ่งนี้ใช้กับบัญชีที่เพิ่มทั้งหมด จึงไม่แนะนำให้ใช้ร่วมกับบัญชีฟรีและบัญชีพรีเมียมรวมกัน อย่าใช้หากบัญชีไม่ใช่ของพรีเมียม
เปิดใช้งานการเล่นแอปเดสก์ท็อปเพื่อดาวน์โหลด : การเปิดใช้งานจะดาวน์โหลดเพลงที่คุณเล่นบนแอปพลิเคชัน Spotify บนเดสก์ท็อปโดยอัตโนมัติ (รองรับ: ลินุกซ์/วินโดวส์)
แสดง/ซ่อนการกำหนดค่าขั้นสูง : เปิด/ปิดใช้งานแท็บการกำหนดค่าขั้นสูง
บันทึกการตั้งค่า : บันทึก/ใช้การตั้งค่า
ชื่อแทร็กเริ่มต้นคือ AlbumFormatter/TrackName
ตัวจัดรูปแบบชื่อแทร็ก : ตัวเลือกนี้ช่วยให้คุณตั้งค่ารูปแบบการตั้งชื่อของแทร็กที่ดาวน์โหลดได้ สามารถใช้ตัวแปรได้โดยล้อมไว้ระหว่าง {}
ตัวแปรบางตัวพร้อมใช้งานในรูปแบบการตั้งชื่อ:
ศิลปิน : ชื่อศิลปินของเพลง
อัลบั้ม : ชื่ออัลบั้มที่มีเพลงอยู่ใน *
name : ชื่อเพลง
rel_year : ปีที่วางจำหน่ายเพลง
disc_number : หมายเลขดิสก์ที่มีแทร็กอยู่ *
track_number : หมายเลขซีเรียลของแทร็กในอัลบั้ม *
Playlist_name : ชื่อของเพลย์ลิสต์หากกำลังดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
Playlist_owner : ชื่อของเพลย์ลิสต์หากกำลังดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
Playlist_desc : คำอธิบายเพลย์ลิสต์หากมีการดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
ประเภท : แนวเพลง *
label : ชื่อของค่ายเพลง
ชัดเจน : 'ชัดเจน' หากเพลงถูกทำเครื่องหมายว่าไม่เหมาะสม มิฉะนั้นเพลงจะว่างเปล่า
trackcount : จำนวนเพลงทั้งหมดในอัลบั้มที่มีแทร็กนี้
disccount : จำนวนแผ่นทั้งหมดในอัลบั้มของแทร็กนี้
spotid : Spotify ID
ตัวอย่าง: Song: {name} of album: {album} Released in {rel_year}
ค่าของตัวแปรที่มีคำอธิบายลงท้ายด้วย * อาจจะว่างเปล่าในบางกรณี นี่อาจเป็นเส้นทางก็ได้
ตัวจัดรูปแบบชื่อไดเร็กทอรีอัลบั้ม : ตัวเลือกนี้ช่วยให้คุณตั้งค่ารูปแบบการตั้งชื่อไดเร็กทอรีสำหรับแทร็กที่ดาวน์โหลด สามารถใช้ตัวแปรได้โดยล้อมไว้ระหว่าง {}
ตัวแปรบางตัวพร้อมใช้งานในรูปแบบการตั้งชื่อ:
artist : ชื่อศิลปินหลักของอัลบั้ม
rel_year: ปีที่ออกอัลบั้ม *
อัลบั้ม: ชื่ออัลบั้ม
Playlist_name : ชื่อของเพลย์ลิสต์หากกำลังดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
Playlist_owner : ชื่อของเพลย์ลิสต์หากกำลังดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
Playlist_desc : คำอธิบายเพลย์ลิสต์หากมีการดาวน์โหลดแทร็กเป็นส่วนหนึ่งของเพลย์ลิสต์ *
ประเภท : แนวเพลง *
label : ชื่อของค่ายเพลง
ตัวอย่าง: {artist}/{rel_year}/{album}
ค่าของตัวแปรที่มีคำอธิบายลงท้ายด้วย * อาจจะว่างเปล่าในบางกรณี นี่อาจเป็นเส้นทางได้เช่นกัน
ขนาดก้อนการดาวน์โหลด : ขนาดของก้อน (ไบต์) ที่ใช้ในการดาวน์โหลด
ปิดใช้งานการแจ้งเตือนการดาวน์โหลดจำนวนมาก : การเปิดใช้งานนี้จะปิดใช้งานกล่องโต้ตอบป๊อปอัปเกี่ยวกับสถานะเมื่อใช้การดาวน์โหลดจำนวนมาก
การดาวน์โหลดที่กู้คืนได้การลองใหม่ล่าช้า : เวลาที่ต้องรอก่อนที่จะพยายามดาวน์โหลดอีกครั้งหลังจากพยายามล้มเหลว
ข้ามไบต์ที่ตอนท้าย (สิ้นสุดการดาวน์โหลดที่ข้ามไบต์) : บางครั้งไม่สามารถดาวน์โหลดสองสามไบต์สุดท้ายของแทร็กได้ ซึ่งนำไปสู่ 'ข้อผิดพลาด PD' ซึ่งทำให้การดาวน์โหลดล้มเหลวอย่างต่อเนื่อง ตัวเลือกนี้จะกำหนดจำนวนไบต์ที่จะข้ามการดาวน์โหลดเมื่อเกิดเหตุการณ์เช่นนี้ ค่าอาจมีการเปลี่ยนแปลง แต่ค่าการทำงานปัจจุบันคือ '167' ไบต์ หากคุณได้รับ "ข้อผิดพลาดในการถอดรหัส" หรือการดาวน์โหลดเพลงที่ไม่สมบูรณ์ ให้ลองตั้งค่าเป็น 0
Force Artist/Album dir สำหรับรายการแทร็ก/เพลย์ลิสต์ : หากปิดใช้งาน แทร็กที่ดาวน์โหลดจะถูกวางไว้ที่รากของไดเรกทอรีดาวน์โหลด แทนที่จะเป็นไดเรกทอรีศิลปิน/อัลบั้ม การเปิดใช้งานสิ่งนี้อาจทำให้การแยกวิเคราะห์การดาวน์โหลดช้าลง แต่ทำให้การจัดระเบียบเพลงง่ายขึ้น
รูปแบบสื่อ : รูปแบบของสื่อที่คุณต้องการให้ดาวน์โหลดเพลงขั้นสุดท้าย ไม่รวม '.' ในนั้น การตั้งค่านี้จะถูกละเว้นในขณะที่ใช้ตัวเลือกการดาวน์โหลดสื่อดิบ
ข้อผิดพลาดในการถอดรหัส: หากคุณได้รับข้อผิดพลาดนี้ บัญชีของคุณอาจถูกจำกัด โปรดรอสักครู่หรือลองใช้บัญชีอื่น แอปพลิเคชันอาจหยุดทำงานบ่อยครั้งเนื่องจากยังไม่มีการจัดการข้อยกเว้นที่เหมาะสม คุณสามารถช่วยได้โดยเปิดปัญหาใหม่พร้อมข้อความแสดงข้อผิดพลาดที่แสดงในหน้าต่างคอนโซลของคุณหลังจากที่แอปพลิเคชันทำงานผิดปกติ
คุณสามารถเขียนโค้ดเพื่อรวมคุณสมบัติเพิ่มเติมหรือการแก้ไขข้อบกพร่องหรือสร้างปัญหาเกี่ยวกับข้อบกพร่องและคุณสมบัติหรือเพียงกระจายงานเกี่ยวกับแอปพลิเคชัน :) หากคุณต้องการการสนับสนุนทางการเงิน คุณสามารถเยี่ยมชมได้ ที่นี่ และสนับสนุนผ่าน open collective หรือ BTC หากคุณต้องการ โครงการแสดงการสนับสนุนของคุณโดยให้ดาว :) !