Organize YouTube Music likes into playlists with guided bootstrap and weekly sync
Project description
ytmusic-organizer
your likes are not a playlist system. they are a pile.
ytmusic-organizer turns that pile into reusable youtube music playlists with a guided setup and a weekly sync that handles the boring part.
██╗ ██╗████████╗███╗ ███╗ ██████╗
╚██╗ ██╔╝╚══██╔══╝████╗ ████║██╔═══██╗
╚████╔╝ ██║ ██╔████╔██║██║ ██║
╚██╔╝ ██║ ██║╚██╔╝██║██║ ██║
██║ ██║ ██║ ╚═╝ ██║╚██████╔╝
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝
Y T M O • playlist automation, human taste.
demo
good fit
- you dump tracks into youtube music likes and want usable playlists out of it.
- you want a weekly sync instead of another manual cleanup ritual.
- you prefer a cli that does the job over hand-curating playlists every week.
what it does
- builds an initial playlist structure from your liked songs.
- applies weekly incremental updates as you like new tracks.
- supports
manualmode when you want to provide JSON plans andapimode when you want openai-backed planning. - keeps state in
~/.ytmusic-organizerby default so runs stay repeatable.
install
recommended:
pipx install ytmusic-organizer
from source:
pipx install .
first run
- run guided setup:
ytmo setup
- run your weekly sync:
ytmo sync
- if you want end-to-end planning, use api mode:
export OPENAI_API_KEY=...
ytmo sync --mode api
safety model
- deletes only playlists listed in
managed_playlists.json, using playlist ids. - never performs arbitrary playlist deletion.
rebuildandcleanupare destructive and require explicit confirmation unless--yesis passed.--dry-rundoes not write playlists or workspace artifacts, but it may still require auth and network reads.
core commands
ytmo setup- guided bootstrap and initial playlist buildytmo sync- weekly incremental updatesytmo rebuild --yes- full destructive rebuildytmo cleanup --yes- remove managed playlists and local managed artifactsytmo stats- read-only workspace diagnosticsytmo demo- simulation walkthrough with no auth, network, or writes
docs
- cli and reference details: docs/reference.md
- automation integration: docs/automation.md
- demo asset workflow: docs/demo.md
- collaborator workflows: docs/collaborators.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ytmusic_organizer-0.2.1.tar.gz.
File metadata
- Download URL: ytmusic_organizer-0.2.1.tar.gz
- Upload date:
- Size: 51.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99b0ba56ae2acbe10d0b818c3603b4ac4fcf49e9adb178dabc6f915c25298826
|
|
| MD5 |
5ae6619cd3dbb80a3df51c801283c824
|
|
| BLAKE2b-256 |
cd12e4de8f72347aa72777174ab2e510ecab896a58f79d916759c5a277e2173e
|
Provenance
The following attestation bundles were made for ytmusic_organizer-0.2.1.tar.gz:
Publisher:
release-pypi.yml on feffel/ytmusic-organizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ytmusic_organizer-0.2.1.tar.gz -
Subject digest:
99b0ba56ae2acbe10d0b818c3603b4ac4fcf49e9adb178dabc6f915c25298826 - Sigstore transparency entry: 1381896993
- Sigstore integration time:
-
Permalink:
feffel/ytmusic-organizer@87c1765fce1ff8234cf88357cb5fde6581c10326 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/feffel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@87c1765fce1ff8234cf88357cb5fde6581c10326 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ytmusic_organizer-0.2.1-py3-none-any.whl.
File metadata
- Download URL: ytmusic_organizer-0.2.1-py3-none-any.whl
- Upload date:
- Size: 37.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4987fd24d5c994782a4935721ed73aa4a5cb04cd3ff36cfc4bdaefb493d5b1
|
|
| MD5 |
021a7d2bc52906be17f929ff95859a88
|
|
| BLAKE2b-256 |
e905576ad2ddf8b98ab0c1cade86719135e846763cc1d00cd3dffb3bd120cd5a
|
Provenance
The following attestation bundles were made for ytmusic_organizer-0.2.1-py3-none-any.whl:
Publisher:
release-pypi.yml on feffel/ytmusic-organizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ytmusic_organizer-0.2.1-py3-none-any.whl -
Subject digest:
ef4987fd24d5c994782a4935721ed73aa4a5cb04cd3ff36cfc4bdaefb493d5b1 - Sigstore transparency entry: 1381897049
- Sigstore integration time:
-
Permalink:
feffel/ytmusic-organizer@87c1765fce1ff8234cf88357cb5fde6581c10326 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/feffel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@87c1765fce1ff8234cf88357cb5fde6581c10326 -
Trigger Event:
push
-
Statement type: