https://github.com/pierreramez/a2s-migrator
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.
https://github.com/pierreramez/a2s-migrator
anghami automation cli music playlist playlist-manager playlist-migration python python-script sele selenium-python selenium-webdriver spotify spotify-api
Last synced: about 1 month ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/pierreramez/a2s-migrator
- Owner: PierreRamez
- License: mit
- Created: 2025-06-24T16:18:43.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-06-24T17:05:31.000Z (3 months ago)
- Last Synced: 2025-06-24T17:44:47.548Z (3 months ago)
- Topics: anghami, automation, cli, music, playlist, playlist-manager, playlist-migration, python, python-script, sele, selenium-python, selenium-webdriver, spotify, spotify-api
- Language: Python
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Anghami to Spotify Playlist Migrator
This 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.
## Features
- **Live Extraction:** No need to manually download HTML files. The tool controls a web browser to extract data live.
- **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.").
- **Detailed Reporting:** Generates both a `JSON` and a readable `TXT` report detailing which songs were found and which were not.
- **Interactive CLI:** A simple and clean menu-driven interface to guide you through the process.
- **Cross-Platform:** Works with Chrome, Firefox, and Edge on any OS that supports them.## Prerequisites
- Python 3.7+
- One of the following web browsers installed:
- Google Chrome (or any Chromium-based browser)
- Mozilla Firefox
- Microsoft Edge
- A Spotify account with a new App created to get API credentials.## Setup Instructions
1. **Clone the Repository:**
```bash
git clone https://github.com/PierreRamez/A2S-Migrator.git
cd "A2S-Migrator"
```2. **Create a Virtual Environment (Recommended):**
```bash
python3 -m venv .venv
source .venv/bin/activate
# On Windows, use: .venv\Scripts\activate
```3. **Install Dependencies:**
```bash
pip install -r requirements.txt
```4. **Configure Spotify API Credentials:**
- Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/).
- Click **"Create app"**.
- Give it a name (e.g., "Anghami Migrator") and a description.
- Once created, you will see your **Client ID** and you can click to show your **Client Secret**.
- Now, go to **"Edit Settings"**.
- In the **"Redirect URIs"** field, add `http://127.0.0.1:8080`. Click **Save**.
- Open `config.ini` and paste your credentials:
```ini
[Spotify]
client_id = YOUR_SPOTIFY_CLIENT_ID
client_secret = YOUR_SPOTIFY_CLIENT_SECRET
redirect_url = http://127.0.0.1:8080
```## How to Use
Simply run the main script to start the interactive menu:
```bash
python3 main.py
```You will be presented with the following options:
- **1. Run the full process (Extract -> Migrate):** This will first launch the song extractor and then immediately run the migrator.
- **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.
- **3. Run only the Playlist Migrator:** Use this if you have already run the extractor and want to re-run the migration to Spotify.### First-Time Run
When 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.
## Project Structure
```
.
├── main.py # The main entry point with the user menu
├── extractor.py # Script to extract songs from Anghami using Selenium
├── migration.py # Script to find songs on Spotify and create the playlist
├── requirements.txt # Project dependencies
├── config.ini # Template for the configuration file
├── config.ini # Template for the configuration file
└── README.md # This file
```## Contributing
Contributions are welcome! If you have ideas for improvements or find any bugs, feel free to open an issue or submit a pull request.
## Supported Browsers
- **Google Chrome** (or Chromium)
- **Microsoft Edge**
- **Mozilla Firefox**
- **Other Chromium-based browsers** (Brave, Vivaldi, Opera, etc.)When 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`).
To find the path to your browser, you can use:
```bash
which brave-browser
which vivaldi
which opera
which chromium
```---
Made with ❤️ by Pierre Ramez Francis