# Wiki-to-Spotify Soittolistan Päivittäjä 🎵 Tämä Python-skripti hakee automaattisesti kuluvan viikon biisivalinnat MediaWiki-sivulta ja päivittää ne haluttuun Spotifyn soittolistaan. Skripti on suunniteltu ajettavaksi automaattisesti taustalla (esim. Cronilla). ## Ominaisuudet * Kirjautuu MediaWiki-rajapintaan ja lukee kuluvan viikon (esim. `== Viikko 10 ==`) sisällön. * Etsii tekstistä suorat Spotify-linkit. * Jättää huomiotta muiden palveluiden (esim. YouTube) linkit. * Korvaa valitun Spotify-soittolistan sisällön löydetyillä kappaleilla. ## Vaatimukset * Python 3 * [uv](https://github.com/astral-sh/uv) (suositeltu) tai perinteinen `pip` paketinhallintaan. * Spotify Developer -sovelluksen tunnukset (Client ID & Client Secret). * Tunnukset kohde-MediaWikiin. ## Asennus ja käyttöönotto **1. Lataa koodi ja luo virtuaaliympäristö** ```bash # Luo virtuaaliympäristö uv:lla uv venv # Aktivoi ympäristö (Mac/Linux) source .venv/bin/activate # TAI (Windows) .venv\Scripts\activate # Asenna riippuvuudet uv pip install spotipy requests python-dotenv ``` **2. Asetukset** Luo projektin juureen tiedosto nimeltä `.env` (voit kopioida `.env.example` -tiedoston pohjaksi) ja täytä sinne omat tietosi: ```env SPOTIPY_CLIENT_ID="sinun_spotify_client_id" SPOTIPY_CLIENT_SECRET="sinun_spotify_client_secret" SPOTIPY_REDIRECT_URI="http://localhost:8888/callback" PLAYLIST_ID="soittolistan_id_jota_paivitetaan" WIKI_USERNAME="wiki_tunnuksesi" WIKI_PASSWORD="wiki_salasanasi" WIKI_API_URL="https://sinun-wikisi.fi/api.php" WIKI_PAGE_TITLE="Sivun_Nimi" ``` **3. Ensimmäinen käynnistys ja Spotifyn luvitus** Ensimmäisellä ajokerralla skriptin täytyy saada sinulta lupa muokata soittolistaasi. Aja skripti terminaalissa: ```bash python skripti.py ``` * Skripti tulostaa terminaaliin pitkän Spotify-linkin. * Kopioi linkki ja avaa se selaimessasi. * Kirjaudu sisään Spotifyhin ja hyväksy luvat. * Selaimesi ohjautuu tyhjälle sivulle (localhost). Kopioi tuon sivun osoiterivillä oleva koko URL ja liitä se takaisin terminaaliin. * Projektikansioosi syntyy `.cache` -tiedosto, joka pitää sinut jatkossa kirjautuneena. **Älä jaa tätä tiedostoa eteenpäin!** ## Automatisointi (Linux/Mac) Voit asettaa skriptin pyörimään automaattisesti esimerkiksi kerran päivässä Cron-työkalulla: ```bash crontab -e ``` Lisää tiedoston loppuun (muista muuttaa oikea polku): ```bash 0 4 * * * cd /polku/projektiin && .venv/bin/python skripti.py >> skripti_loki.log 2>&1 ``` Tämä ajaa päivityksen joka aamu klo 04:00 ja tallentaa tulosteet `skripti_loki.log` -tiedostoon.