{"id":21328743,"url":"https://github.com/ashlett/song-manager","last_synced_at":"2026-05-01T03:38:04.349Z","repository":{"id":106295597,"uuid":"98059301","full_name":"Ashlett/song-manager","owner":"Ashlett","description":"Keep a database of favourite songs and create mixtape playlists from them","archived":false,"fork":false,"pushed_at":"2017-09-22T16:06:33.000Z","size":4628,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-01T18:38:50.471Z","etag":null,"topics":["database","favourite-songs","music","playlist","playlist-generator","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ashlett.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-22T21:40:13.000Z","updated_at":"2017-09-16T12:04:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"77362e4e-54ac-4801-9679-b42d4061feba","html_url":"https://github.com/Ashlett/song-manager","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Ashlett/song-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashlett%2Fsong-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashlett%2Fsong-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashlett%2Fsong-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashlett%2Fsong-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ashlett","download_url":"https://codeload.github.com/Ashlett/song-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashlett%2Fsong-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32484352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","favourite-songs","music","playlist","playlist-generator","python","python3"],"created_at":"2024-11-21T21:41:02.343Z","updated_at":"2026-05-01T03:38:04.327Z","avatar_url":"https://github.com/Ashlett.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Favourite Song Manager\n\nDesktop application for keeping a database of favourite songs and creating CD-length playlists from them.\n\n\n## Installation\n\n1. Download the project or clone it:\n`git clone https://github.com/Ashlett/song-manager.git`\n\n2. Create virtual environment (optional, but recommended; you need to have virtualenvwrapper installed):\n`mkvirtualenv --python=/usr/bin/python3 songmgr`\n\n3. Install requirements:\n`pip install -r requirements.txt`\n\n4. Install the package:\n`python setup.py install` (normal installation) or\n`python setup.py develop` (for developers)\n\n\n## Running tests\n\n1. Install pytest: `pip install pytest pytest-cov`\n\n2. In the project directory, run: `pytest`\n\n\n## Usage\n\nActivate virtual environment (if not already in it): `workon songmgr` and run the main script: `favourite_song.py`\n\n### Initial configuration\n\nOn the first use, you will be prompted to choose directory storing all your music and where to store the database file:\n\n![Initial config screen](docs/screenshots/init_dirs_chosen.png?raw=true)\n\nAfter clikcing **OK**, you will see the main window:\n\n![Main window](docs/screenshots/main.png?raw=true)\n\n### Adding songs\n\nIn the main window,click **Add new song** to add a song to favourites:\n\n![Add song](docs/screenshots/song_adder.png?raw=true)\n\nSelect an MP3 using **Choose file**. You will see song details:\n\n![Song details](docs/screenshots/song_widget.png?raw=true)\n\nAfter clicking **OK** the song will be added to your list.\n\n### Creating playlists\n\nWhen you have some songs in your collection, you can make mixtape playlists.\nIn the main window, click **Make mixtapes**:\n\n![Make mixtapes](docs/screenshots/mixtape_maker.png?raw=true)\n\nClick **Make mixtapes** again:\n\n![Mixtape success](docs/screenshots/mixtape_success.png?raw=true)\n\nMixtape information has been written to the database. Now click **Save playlists**:\n\n![Save playlists](docs/screenshots/save_playlists.png?raw=true)\n\nChoose where to save playlists, in which formats and how their filenames should start and click **OK**:\n\n![Mixtapes done](docs/screenshots/mixtapes_done.png?raw=true)\n\nPlaylists are now saved to disk:\n\n![Playlists on disk](docs/screenshots/playlists_on_disk.png?raw=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashlett%2Fsong-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashlett%2Fsong-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashlett%2Fsong-manager/lists"}