75 lines
2.6 KiB
Markdown
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.
|