spotify-paivittaja/README.md

75 lines
2.6 KiB
Markdown

# 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.