{"id":30770429,"url":"https://github.com/pierreramez/a2s-migrator","last_synced_at":"2026-05-20T05:08:33.879Z","repository":{"id":301003432,"uuid":"1007851318","full_name":"PierreRamez/A2S-Migrator","owner":"PierreRamez","description":"A2S Migrator (Anghami to Spotify Migrator) is a powerful, open-source tool that lets you transfer your Anghami playlists to Spotify in just a few clicks.","archived":false,"fork":false,"pushed_at":"2025-06-24T17:05:31.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-24T17:44:47.548Z","etag":null,"topics":["anghami","automation","cli","music","playlist","playlist-manager","playlist-migration","python","python-script","sele","selenium-python","selenium-webdriver","spotify","spotify-api"],"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/PierreRamez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2025-06-24T16:18:43.000Z","updated_at":"2025-06-24T17:05:34.000Z","dependencies_parsed_at":"2025-06-24T17:44:54.869Z","dependency_job_id":"26aa998e-a687-442b-9f4e-d903722f5d2e","html_url":"https://github.com/PierreRamez/A2S-Migrator","commit_stats":null,"previous_names":["pierreramez/a2s-migrator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PierreRamez/A2S-Migrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreRamez%2FA2S-Migrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreRamez%2FA2S-Migrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreRamez%2FA2S-Migrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreRamez%2FA2S-Migrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PierreRamez","download_url":"https://codeload.github.com/PierreRamez/A2S-Migrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreRamez%2FA2S-Migrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273685604,"owners_count":25149722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"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":["anghami","automation","cli","music","playlist","playlist-manager","playlist-migration","python","python-script","sele","selenium-python","selenium-webdriver","spotify","spotify-api"],"created_at":"2025-09-04T23:05:08.841Z","updated_at":"2026-05-20T05:08:33.849Z","avatar_url":"https://github.com/PierreRamez.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anghami to Spotify Playlist Migrator\n\nThis tool allows you to migrate your liked songs or any public playlist from Anghami to a new playlist in your Spotify account. It uses a Selenium-based extractor to fetch song data directly from the Anghami web player and a smart matching algorithm to find the corresponding tracks on Spotify.\n\n\n## Features\n\n-   **Live Extraction:** No need to manually download HTML files. The tool controls a web browser to extract data live.\n-   **Smart Song Matching:** Uses multiple strategies and a similarity algorithm to find the correct songs, even with variations in titles (e.g., \"Live\", \"Remix\", \"feat.\").\n-   **Detailed Reporting:** Generates both a `JSON` and a readable `TXT` report detailing which songs were found and which were not.\n-   **Interactive CLI:** A simple and clean menu-driven interface to guide you through the process.\n-   **Cross-Platform:** Works with Chrome, Firefox, and Edge on any OS that supports them.\n\n## Prerequisites\n\n-   Python 3.7+\n-   One of the following web browsers installed:\n    -   Google Chrome (or any Chromium-based browser)\n    -   Mozilla Firefox\n    -   Microsoft Edge\n-   A Spotify account with a new App created to get API credentials.\n\n## Setup Instructions\n\n1.  **Clone the Repository:**\n    ```bash\n    git clone https://github.com/PierreRamez/A2S-Migrator.git\n    cd \"A2S-Migrator\"\n    ```\n\n2.  **Create a Virtual Environment (Recommended):**\n    ```bash\n    python3 -m venv .venv\n    source .venv/bin/activate\n    # On Windows, use: .venv\\Scripts\\activate\n    ```\n\n3.  **Install Dependencies:**\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n4.  **Configure Spotify API Credentials:**\n    -   Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/).\n    -   Click **\"Create app\"**.\n    -   Give it a name (e.g., \"Anghami Migrator\") and a description.\n    -   Once created, you will see your **Client ID** and you can click to show your **Client Secret**.\n    -   Now, go to **\"Edit Settings\"**.\n    -   In the **\"Redirect URIs\"** field, add `http://127.0.0.1:8080`. Click **Save**.\n    -   Open `config.ini` and paste your credentials:\n        ```ini\n        [Spotify]\n        client_id = YOUR_SPOTIFY_CLIENT_ID\n        client_secret = YOUR_SPOTIFY_CLIENT_SECRET\n        redirect_url = http://127.0.0.1:8080\n        ```\n\n## How to Use\n\nSimply run the main script to start the interactive menu:\n\n```bash\npython3 main.py\n```\n\nYou will be presented with the following options:\n\n-   **1. Run the full process (Extract -\u003e Migrate):** This will first launch the song extractor and then immediately run the migrator.\n-   **2. Run only the Song Extractor:** This is useful if you just want to get your Anghami playlist data into the `anghami_extracted_data.json` file.\n-   **3. Run only the Playlist Migrator:** Use this if you have already run the extractor and want to re-run the migration to Spotify.\n\n### First-Time Run\n\nWhen you run a process that uses the Spotify API for the first time, a browser window will open asking you to authorize the application. After you approve, you will be redirected to a blank page. **Copy the full URL of this page** and paste it back into the terminal when prompted.\n\n## Project Structure\n\n```\n.\n├── main.py           # The main entry point with the user menu\n├── extractor.py      # Script to extract songs from Anghami using Selenium\n├── migration.py      # Script to find songs on Spotify and create the playlist\n├── requirements.txt  # Project dependencies\n├── config.ini        # Template for the configuration file\n├── config.ini        # Template for the configuration file\n└── README.md         # This file\n```\n\n## Contributing\n\nContributions are welcome! If you have ideas for improvements or find any bugs, feel free to open an issue or submit a pull request.\n\n## Supported Browsers\n\n- **Google Chrome** (or Chromium)\n- **Microsoft Edge**\n- **Mozilla Firefox**\n- **Other Chromium-based browsers** (Brave, Vivaldi, Opera, etc.)\n\nWhen running the extractor, you can now choose \"Other Chromium-based browser\" and enter the full path to your browser's executable (e.g., `/usr/bin/brave-browser`).\n\nTo find the path to your browser, you can use:\n```bash\nwhich brave-browser\nwhich vivaldi\nwhich opera\nwhich chromium\n```\n\n---\n\nMade with ❤️ by Pierre Ramez Francis\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierreramez%2Fa2s-migrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpierreramez%2Fa2s-migrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierreramez%2Fa2s-migrator/lists"}