6 releases
0.2.0 | May 24, 2023 |
---|---|
0.1.5 | May 24, 2023 |
0.1.4 | Mar 21, 2023 |
#374 in Multimedia
165KB
2.5K
SLoC
Rust wrappers over the COM API of iTunes for Windows
Documentation of this crate can be found on docs.rs
lib.rs
:
Bindings over iTunes COM API for Windows
What is this for?
iTunes COM API makes it possible to control the local instance of iTunes.
This crate is able to read info (about playlists, songs, etc.) from the local iTunes instance.
It is also able to edit data (add songs to playlists, change track ratings, etc.) on the local iTunes instance.
It is also able to interact with iTunes state and settings (get info about the currently opened windows, get or set EQs, etc.)
It is not meant to read or edit "cloud" playlists, or to do anything network-related.
OS and software compatibility
This crate is Windows-only.
Currently, only iTunes is supported, as Apple Music on Windows does not (yet?) expose a COM interface.
On macOS, it is possible to control iTunes and Apple Music using Apple Script.
How can this crate be used?
Raw bindings
This crate provides raw bindings over the COM API. See the [sys
] module.
Safe bindings
In case it is built with the wrappers
Cargo feature, it also provides safe, Rust-typed wrappers over this API.
See the wrappers
module.
Examples
Examples are available in the examples/
folder. Run them with cargo run --example ... --all-features
.
Notes
This crate probably does not correctly work on 32-bit machines (run cargo clippy --all-features
and see the Clippy errors).
Dependencies
~0–38MB
~532K SLoC