{"id":47306316,"url":"https://github.com/zfl4wless/sc2am","last_synced_at":"2026-04-16T22:01:13.689Z","repository":{"id":345000051,"uuid":"1183542092","full_name":"zFl4wless/sc2am","owner":"zFl4wless","description":"Automate downloading SoundCloud tracks and importing them to Apple Music","archived":false,"fork":false,"pushed_at":"2026-03-27T22:07:58.000Z","size":22,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-28T04:55:41.456Z","etag":null,"topics":["apple-music","automation","downloader","macos","python","soundcloud"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zFl4wless.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-16T17:58:46.000Z","updated_at":"2026-03-27T22:06:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zFl4wless/sc2am","commit_stats":null,"previous_names":["zfl4wless/sc2am"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zFl4wless/sc2am","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zFl4wless%2Fsc2am","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zFl4wless%2Fsc2am/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zFl4wless%2Fsc2am/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zFl4wless%2Fsc2am/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zFl4wless","download_url":"https://codeload.github.com/zFl4wless/sc2am/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zFl4wless%2Fsc2am/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31905895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["apple-music","automation","downloader","macos","python","soundcloud"],"created_at":"2026-03-17T08:19:32.744Z","updated_at":"2026-04-16T22:01:13.683Z","avatar_url":"https://github.com/zFl4wless.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SC2AM - SoundCloud to Apple Music Automation Tool\n\nA Python CLI tool that automates downloading tracks from SoundCloud and importing them into Apple Music on macOS.\n\nThe downloaded MP3 files are automatically enriched with SoundCloud metadata (title, artist, album, genre, date) and cover artwork, so Apple Music shows the correct track information after import.\n\n## Installation\n\n### Requirements\n- **macOS** (Apple Music integration requires macOS)\n- **Python 3.8+**\n- **yt-dlp** (will be installed as dependency)\n\n### Setup\n\n1. **Clone or download the project:**\n```bash\ngit clone https://github.com/zfl4wless/sc2am.git\ncd sc2am\n```\n\n2. **Create a virtual environment (recommended):**\n```bash\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n3. **Install dependencies:**\n```bash\npip install -r requirements.txt\n```\n\n4. **Initialize configuration (optional):**\n```bash\npython main.py config init\n```\n\nThis creates a default config at `~/.sc2am/config.yaml`.\n\n## Usage\n\n### Quick Start\n\nSoundCloud-Links must point to a single track, for example:\n`https://soundcloud.com/artist/track`\nor `https://www.soundcloud.com/artist/track`.\n\n**Download a single track:**\n```bash\npython main.py download \"https://soundcloud.com/artist/track\"\n```\n\n**Download and add to playlist:**\n```bash\npython main.py download \"https://soundcloud.com/artist/track\" --playlist \"My Playlist\"\n```\n\n**Don't automatically open Music app:**\n```bash\npython main.py download \"https://soundcloud.com/artist/track\" --no-open\n```\n\n### Batch Processing\n\nCreate a file `urls.txt` with one URL per line:\n```\nhttps://soundcloud.com/artist/track1\nhttps://soundcloud.com/artist/track2\n# This is a comment\nhttps://soundcloud.com/artist/track3\n```\n\nThen process all URLs:\n```bash\npython main.py batch urls.txt\n```\n\n**Batch options:**\n```bash\n# Add all tracks to a playlist\npython main.py batch urls.txt --playlist \"My Playlist\"\n\n# Continue processing even if a URL fails\npython main.py batch urls.txt --continue-on-error\n```\n\n### Configuration\n\n**View current configuration:**\n```bash\npython main.py config show\n```\n\n**Configuration File** (`~/.sc2am/config.yaml`):\n```yaml\ndownload_dir: ~/Downloads/sc2am\nmusic_library_path: null\ndefault_playlist: null\nkeep_downloads: true\nopen_music_app: true\nlog_level: INFO\nlog_file: null\n```\n\n**Environment Variables:**\nOverride config file settings with environment variables:\n```bash\nSC2AM_DOWNLOAD_DIR=~/Music/Downloads\nSC2AM_PLAYLIST=\"My Playlist\"\nSC2AM_LOG_LEVEL=DEBUG\nSC2AM_KEEP_DOWNLOADS=false\npython main.py download \"https://soundcloud.com/artist/track\"\n```\n\n**Configuration Options:**\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `download_dir` | Path | `~/Downloads/sc2am` | Where to download MP3 files |\n| `music_library_path` | Path | auto-detect | Path to Music.app library |\n| `default_playlist` | String | none | Default playlist for imports |\n| `keep_downloads` | Bool | `true` | Keep MP3 files after import |\n| `open_music_app` | Bool | `true` | Auto-open Music.app |\n| `log_level` | String | `INFO` | Logging level |\n| `log_file` | Path | none | Optional log file path |\n\n### Global Options\n\n```bash\n# Use custom config file\npython main.py --config /path/to/config.yaml download \"...\"\n\n# Set log level\npython main.py --log-level DEBUG download \"...\"\n```\n\n### Advanced Examples\n\n**Batch download with logging:**\n```bash\npython main.py --log-level DEBUG batch urls.txt --continue-on-error\n```\n\n**Download to custom directory:**\n```bash\nSC2AM_DOWNLOAD_DIR=~/Music python main.py download \"...\"\n```\n\n## How It Works\n\n1. **Validate** - Checks if the provided URL is from a supported platform\n2. **Download** - Uses yt-dlp to download audio as MP3 (192kbps)\n3. **Tag** - Embeds title, artist, album/genre/date and cover artwork into the MP3\n4. **Open** - Launches Apple Music with the tagged MP3 file\n5. **Add** - (Optional) Adds track to specified playlist via AppleScript\n\n## Troubleshooting\n\n### yt-dlp not found\n```bash\npip install yt-dlp --upgrade\n```\n\n### Apple Music not opening\n- Ensure Music.app is installed (comes with macOS)\n- Check your `open_music_app` setting in config\n\n### Adding to playlists fails\n- Playlist name must exactly match your Music.app playlists\n- Ensure the Music.app is not currently playing (can interfere with AppleScript)\n\n### Permission denied on download\n- Check that download directory exists and is writable:\n```bash\nmkdir -p ~/Downloads/sc2am\nchmod 755 ~/Downloads/sc2am\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/my-feature`)\n3. Make your changes\n4. Submit a pull request\n\n### Development Setup\n\n```bash\n# Install with dev dependencies\npip install -r requirements-dev.txt\n\n# Code formatting\nblack sc2am/\n\n# Linting\nflake8 sc2am/\n```\n\n## License\n\nMIT License - see LICENSE file for details\n\n## Disclaimer\n\n- This tool is for personal use to manage legally acquired music\n- Respect copyright laws in your jurisdiction\n- SoundCloud's terms of service should be respected\n\n## Support\n\nFor issues, feature requests, or questions:\n- Open an issue on GitHub\n- Check existing issues first\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzfl4wless%2Fsc2am","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzfl4wless%2Fsc2am","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzfl4wless%2Fsc2am/lists"}