API Dokumentace
Kompletní dokumentace API endpointů pro Zpěvníkář
Autentizace pomocí Cookies
API používá cookies pro autentizaci. Zde je návod, jak je získat a použít.
Jak získat cookies z prohlížeče?
- Otevři aplikaci v prohlížeči a přihlas se
- Otevři Developer Tools (F12 nebo Ctrl+Shift+I)
- Jdi na záložku Application (Chrome) nebo Storage (Firefox)
- Vlevo najdi Cookies → klikni na URL tvé aplikace
- Zkopíruj hodnoty všech cookies začínajících na
__clerk
Použití v Pythonu
import requests
BASE_URL = "https://your-domain.com"
cookies = {
"__clerk_db_jwt": "YOUR_COOKIE_VALUE",
"__session": "YOUR_SESSION_VALUE"
}
response = requests.post(
f"{BASE_URL}/api/import-song",
json={"url": "...", "save": True},
cookies=cookies
)⚠️ Důležité: Cookies expirují po odhlášení nebo po určité době. Pokud dostaneš chybu 401, znovu se přihlas a zkopíruj nové cookies.
Podporované zdroje pro import
API podporuje import písní z následujících zdrojů:
Písničky Akordy
https://pisnicky-akordy.cz/jarek-nohavica/kdyz-me-brali-za-vojakaSuperMusic
https://www.supermusic.cz/piesen.php?id=1591YouSongs
https://yousongs.cz/pisen/4147-Hop-trop-Tri-krize.aspxKaraokeTexty
https://www.karaoketexty.cz/texty-pisni/vypsana-fixa/krasny-smutny-den-576185POST
/api/import-songImportuje píseň z externího zdroje (pisnicky-akordy.cz, supermusic.cz/sk, nebo yousongs.cz)
Request Body
Content-Type:
application/jsonSchema:
{
"url": "string (required) - URL písně z podporovaného zdroje",
"save": "boolean (optional) - Pokud true, uloží píseň přímo do databáze"
}Example:
{
"url": "https://pisnicky-akordy.cz/jarek-nohavica/kdyz-me-brali-za-vojaka",
"save": false
}Response
Status:
200
Example:
{
"title": "Když mě brali za vojáka",
"artist": "Jaromír Nohavica",
"content": "[verse]\n[Ami]Když mě brali za vojáka..."
}Příklady použití
// Vlož do konzole prohlížeče (F12 → Console)
// Musíš být přihlášený na webu
const response = await fetch('/api/import-song', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
credentials: 'include', // Důležité: posílá cookies automaticky
body: JSON.stringify({
url: 'https://pisnicky-akordy.cz/jarek-nohavica/kdyz-me-brali-za-vojaka',
save: true // true = uloží do databáze, false = jen vrátí data
})
});
const data = await response.json();
console.log(data);POST
/api/generate-pdfGeneruje PDF zpěvník z písní
Request Body
Content-Type:
application/jsonSchema:
{
"songs": "array (required) - Pole písní",
"showChords": "boolean (required) - Zobrazit akordy v PDF",
"sortBy": "string (required) - Řazení: \"title\" nebo \"created_at\""
}Example:
{
"songs": [
{
"title": "Název písně",
"artist": "Autor",
"content": "[verse]\n[Ami]Text písně...",
"note": "Poznámka (optional)",
"created_at": "2024-01-01T00:00:00Z"
}
],
"showChords": true,
"sortBy": "title"
}Response
Status:
200
Example:
PDF binary data
Příklady použití
// Vlož do konzole prohlížeče (F12 → Console)
// Musíš být přihlášený na webu
const response = await fetch('/api/generate-pdf', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
credentials: 'include', // Důležité: posílá cookies automaticky
body: JSON.stringify({
songs: [
{
title: 'Název písně',
artist: 'Autor',
content: '[verse]\n[Ami]Text písně...',
note: null,
created_at: '2024-01-01T00:00:00Z'
}
],
showChords: true,
sortBy: 'title'
})
});
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'zpevnik.pdf';
a.click();Chybové kódy
400
Bad Request - Neplatný požadavek401
Unauthorized - Neplatné nebo expirované cookies500
Internal Server Error - Chyba serveru