Compare commits

...

4 Commits

Author SHA1 Message Date
afkarxyz d18ba28864 Update v1.4 2025-01-14 21:28:08 +07:00
afkarxyz f8da9ecfd2 Update README.md 2025-01-14 21:27:50 +07:00
afkarxyz 2588680846 Update README.md 2025-01-14 15:50:16 +07:00
afkarxyz f3366f0554 Update README.md 2025-01-11 05:14:42 +07:00
2 changed files with 51 additions and 6 deletions
+4 -2
View File
@@ -1,5 +1,7 @@
[![GitHub All Releases](https://img.shields.io/github/downloads/afkarxyz/SpotifyFLAC/total?style=for-the-badge)](https://github.com/afkarxyz/SpotifyFLAC/releases)
![spotifyflac](https://github.com/user-attachments/assets/a11fde95-e756-4592-982f-b567d4a85f3c)
**Spotify FLAC** allows you to download Spotify tracks in true FLAC format through services like Tidal, Amazon Music, Qobuz, and Deezer with the help of Lucida.
> [!NOTE]
@@ -8,11 +10,11 @@
> [!WARNING]
Sometimes, the **download speed** from Lucida can be fast or slow; it varies unpredictably.
#### [Download](https://github.com/afkarxyz/SpotifyFLAC/releases/download/v1.3/SpotifyFLAC.exe) Spotify FLAC
#### [Download](https://github.com/afkarxyz/SpotifyFLAC/releases/download/v1.4/SpotifyFLAC.exe) Spotify FLAC
## Screenshots
![image](https://github.com/user-attachments/assets/8b0dbd29-3820-415e-9e51-1f0b672cec86)
![image](https://github.com/user-attachments/assets/c2057543-7f15-470e-beeb-2451a3764d15)
> - When **Headless** is enabled, the browser runs in the background without a graphical interface, improving performance and allowing seamless automation.
> - When **Fallback** is enabled, it will use the backup server Lucida.su
+47 -4
View File
@@ -102,10 +102,22 @@ class DownloaderWorker(QThread):
self.last_downloaded_size = 0
def format_size(self, size_bytes):
return f"{size_bytes / (1024 * 1024):.2f}MB"
units = ['B', 'KB', 'MB', 'GB']
index = 0
while size_bytes >= 1024 and index < len(units) - 1:
size_bytes /= 1024
index += 1
return f"{size_bytes:.2f}{units[index]}"
def format_speed(self, speed_bytes):
return f"{speed_bytes * 8 / (1024 * 1024):.2f}Mbps"
speed_bits = speed_bytes * 8
if speed_bits >= 1024 * 1024:
speed_mbps = speed_bits / (1024 * 1024)
return f"{speed_mbps:.2f}Mbps"
else:
speed_kbps = speed_bits / 1024
return f"{speed_kbps:.2f}Kbps"
def progress_callback(self, downloaded_size, total_size):
current_time = time.time()
@@ -388,9 +400,37 @@ class SpotifyFlacGUI(QMainWindow):
self.progress_bar.hide()
self.main_layout.addWidget(self.progress_bar)
bottom_layout = QHBoxLayout()
self.status_label = QLabel("")
self.main_layout.addWidget(self.status_label)
bottom_layout.addWidget(self.status_label, stretch=1)
self.update_button = QPushButton()
icon_path = os.path.join(os.path.dirname(__file__), "update.svg")
if os.path.exists(icon_path):
self.update_button.setIcon(QIcon(icon_path))
self.update_button.setFixedSize(16, 16)
self.update_button.setStyleSheet("""
QPushButton {
border: none;
background: transparent;
}
QPushButton:hover {
background: transparent;
}
""")
self.update_button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
self.update_button.setToolTip("Check for Updates")
self.update_button.clicked.connect(self.open_update_page)
bottom_layout.addWidget(self.update_button)
self.main_layout.addLayout(bottom_layout)
def open_update_page(self):
import webbrowser
webbrowser.open('https://github.com/afkarxyz/SpotifyFLAC/releases')
def validate_url(self, url):
url = url.strip()
self.fetch_button.setEnabled(False)
@@ -439,6 +479,7 @@ class SpotifyFlacGUI(QMainWindow):
self.track_widget.show()
self.download_button.show()
self.cancel_button.show()
self.update_button.hide()
self.status_label.clear()
self.adjustWindowHeight()
@@ -479,6 +520,7 @@ class SpotifyFlacGUI(QMainWindow):
self.status_label.clear()
self.metadata = None
self.fetch_button.setEnabled(True)
self.update_button.show()
self.setFixedHeight(180)
def button_clicked(self):
@@ -499,6 +541,7 @@ class SpotifyFlacGUI(QMainWindow):
self.track_widget.hide()
self.input_widget.show()
self.metadata = None
self.update_button.show()
self.setFixedHeight(180)
def start_download(self):