{"id":25269853,"url":"https://github.com/datadiggerjay/spotify-podmapper","last_synced_at":"2026-04-24T12:31:12.072Z","repository":{"id":275572393,"uuid":"926456080","full_name":"DataDiggerJay/Spotify-PodMapper","owner":"DataDiggerJay","description":"📌 \"Automated tool to match Apple Podcasts with Spotify using API \u0026 fuzzy matching.\"","archived":false,"fork":false,"pushed_at":"2025-02-03T09:58:32.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T09:41:06.092Z","etag":null,"topics":["api","automation","mysql","podcasts","python","spotify","web-scrapping"],"latest_commit_sha":null,"homepage":"https://github.com/DataDiggerJay/Spotify-PodMapper","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/DataDiggerJay.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-02-03T09:37:59.000Z","updated_at":"2025-02-03T10:06:30.000Z","dependencies_parsed_at":"2025-02-03T11:45:16.126Z","dependency_job_id":"c56beb86-fbd8-4cb4-a433-a3d75ab31596","html_url":"https://github.com/DataDiggerJay/Spotify-PodMapper","commit_stats":null,"previous_names":["datadiggerjay/spotify-podmapper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DataDiggerJay/Spotify-PodMapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDiggerJay%2FSpotify-PodMapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDiggerJay%2FSpotify-PodMapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDiggerJay%2FSpotify-PodMapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDiggerJay%2FSpotify-PodMapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataDiggerJay","download_url":"https://codeload.github.com/DataDiggerJay/Spotify-PodMapper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDiggerJay%2FSpotify-PodMapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32223766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["api","automation","mysql","podcasts","python","spotify","web-scrapping"],"created_at":"2025-02-12T11:20:04.376Z","updated_at":"2026-04-24T12:31:11.816Z","avatar_url":"https://github.com/DataDiggerJay.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Podcast-Spotify-Matcher 🎙️🎧**  \n\n## 📌 **Overview**  \nPodcast-Spotify-Matcher is a **Python-based automation tool** that:  \n✅ Scrapes **Apple Podcasts** from a MySQL database.  \n✅ Searches for **matching podcasts** on Spotify using the Spotify API.  \n✅ Uses **fuzzy string matching** to improve accuracy.  \n✅ Stores the matched **Spotify podcast links** in the database.  \n✅ Supports **batch processing** for efficiency.  \n\n---\n\n## 🚀 **Features**  \n✅ **Batch Processing:** Handles multiple podcast records at once.  \n✅ **Spotify API Key Rotation:** Prevents rate limits by switching credentials dynamically.  \n✅ **Logging \u0026 Debugging:** Records errors, missing data, and matches for analysis.  \n✅ **Fuzzy Matching Algorithms:** Ensures more accurate matches based on podcast titles.  \n✅ **Database Integration:** Stores matched data in a **MySQL** database.  \n\n---\n\n## 🏗️ **Installation \u0026 Setup**  \n\n### **1️⃣ Clone the Repository**  \n```sh\ngit clone https://github.com/DataDiggerJay/Podcast-Spotify-Matcher.git\ncd Podcast-Spotify-Matcher\n```\n\n### **2️⃣ Install Required Dependencies**  \n```sh\npip install -r requirements.txt\n```\n\n---\n\n## 🔑 **How to Get Your Spotify Client ID \u0026 Secret Key**  \n\n### **Step 1: Create a Spotify Developer Account**  \n1️⃣ Go to the **Spotify Developer Portal**:  \n   👉 [https://developer.spotify.com/dashboard/](https://developer.spotify.com/dashboard/)  \n2️⃣ Log in with your **Spotify account** or create a new one.  \n\n### **Step 2: Create a New Application**  \n1️⃣ Click **\"Create an App\"** on the Developer Dashboard.  \n2️⃣ Enter:  \n   - **App Name:** (e.g., PodcastMatcher)  \n   - **App Description:** (e.g., \"A tool to match Apple Podcasts with Spotify.\")  \n3️⃣ Click **Create** and accept the terms.  \n\n### **Step 3: Get Your API Credentials**  \n1️⃣ Once your app is created, go to the **\"Settings\"** tab.  \n2️⃣ Find your **Client ID** and **Client Secret**.  \n3️⃣ Copy both values and use them in your `config.json` file.  \n\n---\n\n## ⚙️ **Configuration (`config.json` Example)**  \nCreate a `config.json` file inside your project directory and add the following:  \n\n```json\n{\n  \"spotify\": [\n    {\n      \"client_id\": \"YOUR_SPOTIFY_CLIENT_ID\",\n      \"client_secret\": \"YOUR_SPOTIFY_CLIENT_SECRET\"\n    }\n  ],\n  \"database\": {\n    \"host\": \"YOUR_DATABASE_HOST\",\n    \"user\": \"YOUR_DATABASE_USER\",\n    \"password\": \"YOUR_DATABASE_PASSWORD\",\n    \"database\": \"YOUR_DATABASE_NAME\"\n  },\n  \"logging\": {\n    \"log_file\": \"script.log\",\n    \"log_level\": \"INFO\"\n  }\n}\n```\n\n🔴 **Do NOT share your `config.json` file publicly!**  \n🔴 **Add `config.json` to `.gitignore` to prevent leaks!**  \n\n---\n\n## 🎯 **Run the Script**  \nOnce you’ve set up everything, run:  \n\n```sh\npython script.py\n```\n\nThe script will:  \n✅ Fetch podcasts from **Apple Podcasts database**.  \n✅ Search for **matching podcasts on Spotify**.  \n✅ Store the results in **MySQL**.  \n\n---\n\n## 🛠️ **Requirements (`requirements.txt`)**  \n```txt\nrequests\npymysql\nlogging\nrapidfuzz\n```\nTo install:  \n```sh\npip install -r requirements.txt\n```\n\n---\n\n## 📂 **Project Structure**  \n```\nPodcast-Spotify-Matcher/\n│── .gitignore         # Ignore sensitive files (config.json, logs)\n│── README.md          # Documentation (this file)\n│── script.py          # Main script\n│── config.json        # Configuration (DO NOT SHARE!)\n│── requirements.txt   # Dependencies\n```\n\n---\n\n## 🛠️ **Future Improvements**  \n✅ **Multi-threading** for faster processing.  \n✅ **Web interface** to monitor processed podcasts.  \n✅ **OAuth-based authentication** for better security.  \n\n---\n\n## 📜 **License**  \nThis project is **open-source** under the MIT License.  \n\n🔗 **GitHub:** [Your GitHub Profile](https://github.com/DataDiggerJay/)  \n\n🚀 **Happy Coding!** 🎧🔥","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadiggerjay%2Fspotify-podmapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatadiggerjay%2Fspotify-podmapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadiggerjay%2Fspotify-podmapper/lists"}