Skip to main content

osp-tools

python license platform

python tools for managing openswim mp3 players.

cli overview

image

features

  • device detection: automatically finds openswim device path on macos, linux, and windows.
  • youtube: downloads audio via yt-dlp wrapper. supports videos, playlists, shorts.
  • spotify: scrapes track metadata without api keys. supports tracks, albums, playlists, artist top tracks.
  • bulk: threaded processing for multiple queries.

installation

pip install osp-tools

manual build

git clone https://github.com/1etu/osp-tools.git
cd osp-tools
pip install build
python -m build
pip install dist/osp_tools-*.whl

development

git clone https://github.com/1etu/osp-tools.git
cd osp-tools
pip install -e ".[dev]"

usage

osp --help

device management

osp device              # show device info, storage usage
osp ls                  # list tracks on device

youtube download

osp dl "https://youtube.com/watch?v=..."             # download single video
osp dl "https://youtube.com/playlist?list=..."       # download entire playlist
osp dl dQw4w9WgXcQ                                   # download by video id
osp dl "..." --device                                # download directly to openswim
osp dl "..." -f m4a                                  # download as m4a (more efficient)
osp dl "..." -f mp3 -q 320                          # 320kbps mp3
osp dl "..." -f flac                                 # lossless audio (flac)
osp dl "..." -o ./music                              # custom output directory
osp search "song name"                # search youtube, get video ids
osp search "artist - track" -n 10     # limit results

spotify (no api keys)

osp spotify "https://open.spotify.com/track/..."     # single track
osp spotify "https://open.spotify.com/album/..."     # full album
osp spotify "https://open.spotify.com/playlist/..."  # playlist
osp spotify "https://open.spotify.com/artist/..."    # artist top tracks
osp spotify "..." --info                             # show track list only
osp spotify "..." --device                           # download to openswim
osp spotify "..." -f m4a                             # download as m4a
osp spotify "..." -f mp3 -q 320                      # 320kbps mp3
osp spotify "..." -w 8                               # 8 parallel downloads
osp spotify "..." --fast                             # skip transcoding (~2x speed)
osp spotify "..." -f m4a --fast                      # m4a + fast mode (fastest)

sync local files

osp sync ./downloads              # sync folder to device (skip existing)
osp sync ./downloads --all        # overwrite all

format support

supported formats: mp3, m4a, aac, flac, opus, wav, ogg

format quality ranges (auto-adjusted):

  • mp3: 128-320kbps (default: 192)
  • m4a/aac: 96-256kbps (default: 160, more efficient)
  • opus: 96-320kbps (default: 160)
  • ogg: 128-320kbps (default: 192)
  • flac/wav: lossless (quality ignored)

dependencies

  • python 3.9+
  • yt-dlp
  • ffmpeg (for audio conversion)

structure

  • osp/core: device discovery and mount point logic.
  • osp/download: youtube/spotify scrapers and downloaders.

license

MIT

Metadata

Release files for osp-tools 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for osp-tools 0.2.1
File Size Uploaded
osp_tools-0.2.1.tar.gz 20.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for osp-tools 0.2.1
File Interpreter ABI Platform
osp_tools-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 43.3 kB

Release files / osp_tools-0.2.1.tar.gz

Download URL osp_tools-0.2.1.tar.gz
Size 20.9 kB
Tags Source
SHA-256 checksum
How to use checksums
87c2bf74142f3d4fce731ba5ba85ae3e7a5c2ef86ffc0be0fb65cd9f033e26b1
BLAKE2b-256 checksum
How to use checksums
37311ec8e9422acca61824bf5858bbedc292d406db867218ce769bd0901faf7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.7

Release files / osp_tools-0.2.1-py3-none-any.whl

Download URL osp_tools-0.2.1-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c307df605d8a79a6e4de89ba646ca0b02facc568cc8d47130795f5ba676a742f
BLAKE2b-256 checksum
How to use checksums
f75cca50041ebd1e1c71375754d488725d0710de993cd127151da373d49a3dfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.7

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page