Skip to content

Releases: vorlie/IotaPlayer

v1.10

Choose a tag to compare

@vorlie vorlie released this 08 Jun 16:26

🚀 Refactor: Improved Discord Integration

What's changed:

  • The Discord integration code has been fully refactored for better reliability, maintainability, and extensibility.
  • Presence updates now use a structured data model, making the code more robust and less error-prone.
  • Improved error handling and automatic reconnection logic for a smoother user experience.
  • Enhanced rate limit management to prevent unnecessary failures when communicating with Discord.
  • Thread safety is now ensured for all Discord RPC operations.

Enjoy a more stable and seamless Discord Rich Presence with Iota Player!
As always, your feedback and contributions are highly appreciated.

v1.9

Choose a tag to compare

@vorlie vorlie released this 05 Jun 12:33

🛠️ Fix: Metadata Overflow Prevention

What's fixed:

  • Song metadata fields (title, author, album, genre) in the right frame are now automatically truncated with ellipses if they exceed a certain length.
  • This prevents long text from overflowing or breaking the layout, ensuring a clean and consistent appearance for all song information.

Enjoy a more beautiful and consistent music experience with Iota Player!
As always, feedback and contributions are welcome.

v1.8

Choose a tag to compare

@vorlie vorlie released this 03 Jun 02:27

🎉 New Release: Cover Art Extraction, Caching, and 1:1 Cropping!
I'm excited to announce a major new feature in Iota Player:

📀 Automatic Cover Art Extraction & Cropping

  • Iota Player now scans your music library for embedded cover art in audio files (MP3, FLAC, OGG, M4A).
  • All covers are automatically extracted, cached, and cropped to a perfect 1:1 (square) aspect ratio—no more side bars or padding!
  • This ensures a consistent and visually appealing display for all your albums and tracks.

⚡ How to Use

  • Open the Settings dialog and go to the new Cover Art tab.
  • Click "Extract & Cache Covers" to start the process. Progress is shown in real time.
  • Once complete, Iota Player will automatically use the cached, cropped covers in the player UI.

You might need to restart Iota Player if it doesn't use the cached covers instantly.

🧩 Other Improvements

  • The extraction and caching process runs in a background thread, so your UI stays responsive.
  • Cross-platform support: works on Windows, Linux, and macOS.

🛠️ Fix: Cover Art Fallback Display

This fix ensures that if a cached or processed cover image is missing or invalid, Iota Player will correctly fall back to displaying the song's picture_path or the default image in the right frame. This resolves an issue where cover art might not appear if the cache was unavailable.

What's fixed:

  • Properly checks if the cached cover art is valid before displaying.
  • Falls back to the song's picture_path or a default image if needed.
  • Guarantees consistent and reliable cover art display for all songs.

Enjoy a more beautiful and consistent music experience with Iota Player!
As always, feedback and contributions are welcome.

v1.7

Choose a tag to compare

@vorlie vorlie released this 24 May 15:28

Release Notes

Improvements

  • Song cover display:
    The player now attempts to display embedded cover art from MP3 files automatically. If no embedded cover is found, it falls back to the song's picture_path or a default image. This improves the accuracy and visual appeal of album art shown in the player.

v1.6

Choose a tag to compare

@vorlie vorlie released this 21 May 00:14

Release Notes

New Features

  • PyQt5 Media Player Integration:
    Switched from pygame.mixer to native QMediaPlayer for audio playback, enabling better integration with the UI and more reliable playback controls.

  • Seek Bar Functionality:
    Users can now seek within a song using the progress bar. The playback position updates instantly, and Discord Rich Presence reflects the new timestamp after seeking.

  • Google Client Secret Path in Settings:
    Added a new "Google" tab in the settings dialog where users can set the path to their Google API client secret file (client_secret.json). This path is now saved in the configuration and used for YouTube integration.

  • YouTube Upload Button State:
    The "Upload to YouTube" button is now automatically enabled or disabled based on the presence and validity of the Google client secret file. Tooltips and warnings guide users to set up the required file.

Improvements

  • Removed All pygame Dependencies:
    All remaining references to pygame and mixer have been removed for a cleaner, more maintainable codebase.

  • Config-Driven Google API Authentication:
    The Google API client secret path is now dynamically loaded from the config file, ensuring the correct file is always used for authentication.

  • Settings Save and Restart:
    After saving settings, the application prompts for a restart to apply changes, ensuring all new configurations (including Google API path) are loaded properly.

  • Improved Error Handling:
    Added user-friendly warnings and error messages for missing or invalid Google client secret files and empty playlists during YouTube upload.

  • UI/UX Improvements:
    Added tooltips and dialog messages to help users understand required setup steps for YouTube integration.
    Disabled controls when prerequisites are not met, preventing user confusion.

v1.5

Choose a tag to compare

@vorlie vorlie released this 19 Apr 12:49

Release Notes

New Features

  • YouTube Playlist Export:
    Added an option to export playlists to YouTube if each song in the playlist has a valid YouTube ID.

    Note:
    You must modify core/google.py before using this feature.
    See the comments at the top of the file for setup instructions (client secrets, API enablement, etc.).

Other

  • No compiled version is included in this release.

v1.4

Choose a tag to compare

@vorlie vorlie released this 26 Feb 00:29

New Features:

  • Added a search functionality.

v1.3

Choose a tag to compare

@vorlie vorlie released this 24 Jan 11:19

New Features

  • Added a tray icon for minimizing the app to tray and opening the app.

Changes

  • Implemented a workaround for presence images due to discords changes causing an unknown error in pypresence.

v1.2

Choose a tag to compare

@vorlie vorlie released this 19 Dec 03:00

Changed:

  • Make the volume slider manage system-level application audio instead of using pygame.mixer volume, however it is now used as a backup when the application is ran as a script.

Features: Click here

Disclaimer:

  1. If you see an antivirus blocking the application, you can make it ignore the application, it is a false positive.
  2. This is happening because we are hiding console output and the application is not signed. That may trigger some AVs
  3. The application is not harmful in any way.
  4. Alternatively, you can build it yourself with the same method we used. Refer to this

v1.1

Choose a tag to compare

@vorlie vorlie released this 16 Dec 16:56

New:

  • Add an option to combine all playlists into 1 playlist.

Features: Click here

Disclaimer:

  1. If you see an antivirus blocking the application, you can make it ignore the application, it is a false positive.
  2. This is happening because we are hiding console output and the application is not signed. That may trigger some AVs
  3. The application is not harmful in any way.
  4. Alternatively, you can build it yourself with the same method we used. Refer to this