AltyaziDB API v1.3
AltyaziDB API, Türkiye'nin en temiz altyazı veritabanına erişmeniz için tasarlanmış yüksek performanslı bir REST servisidir.
X-API-Key: ANAHTARINIZ başlığı (Header) ile ve HTTPS üzerinden yapılmalıdır.
?page=1 ve ?limit=20 parametrelerini destekler.
/search endpoint'i artık version_groups, filters.version_groups ve content_type film/dizi ayrımını destekler. Ayrıca /content_search endpoint'i başlık/yıl üzerinden film veya dizi içerik araması yapabilir.
Kullanıcı ve Kota Sorgulama
Geliştiricilerin kalan API hız sınırlarını (Rate Limit) canlı olarak kontrol etmesini sağlar.
Altyazı Arama
IMDb ID, TMDB ID veya Kodi gibi istemciler için başlık/yıl fallback'i kullanarak belirli bir yapıma ait altyazıları listeler.
episode parametresine PAKET yazarak istek atabilirsiniz.
title zorunlu, year opsiyonel olacak şekilde arama yapılabilir. year gönderilirse eşleşme doğruluğu artar.
1. İstek Parametreleri (Request)
| Parametre | Durum | Açıklama |
|---|---|---|
imdb_id | Koşullu | Yapımın IMDb ID'si (Örn: tt37529347). imdb_id, tmdb_id veya title alanlarından en az biri gönderilmelidir. |
tmdb_id | Koşullu | Yapımın TMDB ID'si. IMDb ID bilinmiyorsa kullanılabilir. |
title | Koşullu | Başlık/yıl fallback araması için yapım adı. IMDb/TMDB ID yoksa zorunludur. |
year | Opsiyonel | Başlık fallback aramasında yılı daraltır (Örn: 2024). |
content_type / type | Opsiyonel | Başlık/yıl aramasında içerik tipini daraltır. Değerler: movie veya series. Türkçe alias olarak film ve dizi de kabul edilir. |
version_group / source | Opsiyonel | Altyazı sürüm grubuna göre filtreler. Örn: BluRay, UHD, WEB-DL. |
lang | Opsiyonel | Dil filtresi (tr veya en) |
season | Opsiyonel | Sadece belirtilen sezonu getirir (Örn: 1). |
episode | Opsiyonel | Bölüm numarası. Sezon paketlerini listelemek için PAKET yazın. Bölüm numarası gönderilirse paket altyazılarda extract_ep bağlantısı üretilebilir. |
page | Opsiyonel | Sayfa numarası. Varsayılan: 1 |
sort | Opsiyonel | Sonuçların sıralama ölçütü. Değerler: date (en yeni, varsayılan) veya downloads (en çok indirilen). |
Örnek Arama İstekleri
GET /api/v1/search?imdb_id=tt37529347&lang=tr&season=1&episode=2
GET /api/v1/search?tmdb_id=12345&lang=tr
GET /api/v1/search?title=Breaking%20Bad&year=2008&type=series&lang=tr&season=1&episode=1
GET /api/v1/search?title=Bagdad%20Cafe&year=1987&type=movie&version_group=BluRay&lang=tr
movie.search_method alanı eşleşmenin imdb_id, tmdb_id veya title_year_fallback ile bulunduğunu gösterir.
2. Yanıt Alanları (Response Model)
Başarılı bir arama sonucunda dönen JSON objesindeki veri modeli aşağıdaki gibidir. Yanıtın filters.version_groups alanı mevcut sonuçlardaki BluRay, UHD, WEB-DL gibi üst filtreleri listelemek için kullanılabilir.
| Alan (Key) | Veri Türü | Açıklama |
|---|---|---|
id | String | Altyazının sistemdeki benzersiz ID numarası. |
language | String | Altyazının dili (Örn: tr). |
season | Integer/Null | Eğer dizi ise sezon numarası, film ise null döner. |
episode | String/Null | Bölüm numarası (Örn: "4" veya "PAKET"). |
fps | String | Altyazının kare hızı (Örn: 23.976). |
version_groups | Array | Altyazının sürüm/kaynak grupları. Örn: ["BluRay","UHD"], ["WEB-DL"]. |
release_groups | Array | version_groups ile aynı bilgiyi geriye dönük uyumluluk için döndürür. |
releases | Array | Altyazının uyumlu olduğu sürüm (Release) isimlerini içeren liste. |
translator | String | Çevirmen adı. |
uploader | String | Sisteme yükleyen kişinin adı. |
downloads | Integer | Toplam indirilme sayısı. |
date | String/Null | Altyazının sisteme eklenme tarihi. Format: YYYY-MM-DD HH:MM:SS. |
is_package | Integer | Altyazı sezon paketi ise 1, değilse 0. |
archive_url | String | Orijinal ZIP/RAR/SRT dosyasını indirmek için kullanılan arşiv bağlantısı. |
stream_url | String | ZIP/RAR/SRT içinden doğrudan oynatıcı uyumlu altyazı stream eden bağlantı. |
download_url | String | Medya oynatıcı uyumlu dinamik bağlantı. Normal altyazılarda subtitle, paket bölüm isteklerinde extract_ep dönebilir. |
translator_note | String/Null | Çevirmene ait not. Girilmemişse null döner. |
hearing_impaired | Integer | İşitme engelli (CC) durumu (1 veya 0). |
forced | Integer | Forced durumu (1 veya 0). |
ai_ceviri | Integer | Yapay zeka (AI) çevirisi durumu (1 veya 0). |
foreign_parts | Integer | Yabancı (Foreign) alanlar barındırma durumu (1 veya 0). |
İçerik Arama — Film/Dizi Ayrımlı
Başlık ve yıl bilgisiyle AltyaziDB içerik arşivinde film veya dizi ayrımı yaparak içerik araması yapar. Bu endpoint özellikle medya oynatıcıların IMDb/TMDB ID göndermediği durumlarda doğru içeriği seçmek için kullanılabilir.
| Parametre | Durum | Açıklama |
|---|---|---|
title | Zorunlu | Aranacak içerik başlığı. |
year | Opsiyonel | Yıl filtresi. Örn: 1987. |
content_type / type | Opsiyonel | movie veya series. Türkçe alias: film, dizi. |
limit | Opsiyonel | Dönecek maksimum içerik sayısı. Varsayılan: 10, maksimum: 50. |
sort | Opsiyonel | Sonuçların sıralama ölçütü. Değerler: date (en yeni, varsayılan) veya rating (en yüksek puanlı). |
Örnekler
GET /api/v1/content_search?title=Bagdad%20Cafe&year=1987&type=movie
GET /api/v1/content_search?title=Breaking%20Bad&type=series
Yanıt Örneği
{
"success": true,
"query": {
"title": "Bagdad Cafe",
"year": 1987,
"content_type": "movie"
},
"data": [
{
"id": 724,
"title": "Bagdad Cafe",
"slug": "bagdad-cafe",
"content_type": "movie",
"year": "1987",
"release_date": "1987-11-12",
"imdb_id": "tt0095801",
"tmdb_id": "12345",
"date": "2026-06-09 21:00:00"
}
]
}
Son Eklenenler
Sisteme eklenen en güncel altyazıları tarihe göre tersten listeler. Dönen veri modeli Arama uç noktası ile aynıdır.
| Parametre | Durum | Açıklama |
|---|---|---|
page | Opsiyonel | Sayfa numarası. Varsayılan: 1 |
limit | Opsiyonel | Sayfada kaç sonuç döneceği. Varsayılan: 20 (Maks: 100) |
sort | Opsiyonel | Sıralama ölçütü. date (varsayılan) veya downloads (en popüler altyazılar) kullanılabilir. |
Arşiv / Orijinal Dosya İndirme
Altyazının sisteme yüklendiği orijinal dosyayı indirmenizi sağlar. Bu dosya .zip, .rar veya doğrudan .srt olabilir.
| Parametre | Durum | Açıklama |
|---|---|---|
sub_id | Zorunlu | İndirilecek altyazının veritabanı ID'si. |
format | Opsiyonel | subtitle, srt veya raw gönderilirse ZIP/RAR içinden ilk uygun altyazı çıkarılıp düz altyazı olarak stream edilir. |
/subtitle endpoint'i önerilir.
Subtitle Stream / Arşivden Altyazı Çıkarma
ZIP, RAR veya doğrudan SRT/VTT/ASS/SUB dosyasından medya oynatıcı uyumlu düz altyazı çıkarır. Stremio, Nuvio, Kodi ve Jellyfin gibi istemciler için önerilen endpoint budur.
| Parametre | Durum | Açıklama |
|---|---|---|
sub_id | Zorunlu | Altyazının veritabanı ID'si. |
season | Opsiyonel | Arşiv içinden belirli sezon/bölüm seçmek için sezon numarası. |
episode | Opsiyonel | Arşiv içinden belirli sezon/bölüm seçmek için bölüm numarası. |
.zip dosyaları PHP ZipArchive ile, .rar dosyaları PHP RarArchive ile okunur. Böylece istemciye ham RAR/ZIP göndermek yerine doğrudan .srt / .vtt / .ass içeriği verilir.
Örnek Kullanım
GET /api/v1/subtitle?sub_id=109617
GET /api/v1/subtitle?sub_id=12345&season=1&episode=2
GET /api/v1/download?sub_id=109617&format=subtitle
Bu endpoint JSON döndürmez; başarılı olduğunda doğrudan altyazı dosyasını stream eder. Hata durumunda JSON hata cevabı döner.
Paket İçinden Bölüm Ayıklama
Bir sezon paketinin (ZIP veya RAR) içinden sadece istenen bölümün (.srt / .vtt / .ass / .ssa / .sub) dosyasını anında ayıklar ve RAW formunda medya oynatıcıya stream eder.
| Parametre | Durum | Açıklama |
|---|---|---|
sub_id | Zorunlu | Paketin veritabanı ID'si. |
season | Zorunlu | İstenen sezon numarası (Örn: 4). |
episode | Zorunlu | İstenen bölüm numarası (Örn: 1). |
Altyazı Yükleme (Upload)
Sisteme doğrudan altyazı dosyası (zip, rar, srt) yüklemenizi sağlar.
imdb_id AltyaziDB sisteminde mevcut değilse, işlem iptal edilmez! API'miz arka planda TMDB'ye bağlanarak içeriği saniyeler içinde otomatik olarak taslak halinde oluşturur.
episode parametresine PAKET yazmanız yeterlidir. Sistem bunu otomatik olarak paket etiketine dönüştürür.
409 Conflict hatası vererek işlemi reddeder.
1. İstek Parametreleri (POST)
| Parametre | Durum | Açıklama |
|---|---|---|
file | Zorunlu | Yüklenecek altyazı dosyası (.zip, .rar, .srt). Max: 5MB |
imdb_id | Zorunlu | Hangi yapıma eklenecekse onun IMDb ID'si. |
lang | Zorunlu | Dil kodu (Örn: tr). |
season | Opsiyonel | Diziler için sezon numarası (Örn: 1). |
episode | Opsiyonel | Diziler için bölüm numarası. Sezon paketi yüklüyorsanız PAKET yazın. |
fps | Opsiyonel | Altyazının kare hızı (Örn: 23.976). |
release | Opsiyonel | Uyumlu olduğu sürüm bilgisi (Örn: WEB-DL). |
translator | Opsiyonel | Çevirmen adı. |
translator_note | Opsiyonel | Çevirmene ait özel not veya çeviri bilgisi (Örn: "Senkron kayması düzeltildi"). |
hearing_impaired | Opsiyonel | İşitme engelli (CC) altyazısı ise 1 gönderin. |
forced | Opsiyonel | Forced altyazı ise 1 gönderin. |
ai_ceviri | Opsiyonel | Yapay zeka (AI) ile çevrildiyse 1 gönderin. |
foreign_parts | Opsiyonel | Yabancı (Foreign) alanlar içeriyorsa 1 gönderin. |
Örnek İstek (cURL)
curl -X POST "https://altyazidb.com/api/v1/upload" \
-H "X-API-Key: ANAHTARINIZ" \
-F "file=@/bilgisayar/yolu/altyazi.zip" \
-F "imdb_id=tt37529347" \
-F "lang=tr" \
-F "season=1" \
-F "episode=PAKET" \
-F "fps=23.976" \
-F "translator=NETRip" \
-F "release=WEB-DL" \
-F "ai_ceviri=1" \
-F "foreign_parts=0"
Başarılı Yanıt (JSON)
{
"success": true,
"message": "Altyazı başarıyla yüklendi.",
"sub_id": 6615,
"post_id": 128
}
Etkileşimler (Favori & Rapor)
Altyazılar ile etkileşime girmek için kullanılan uç noktalardır.
Favoriye Ekle / Çıkar
Gönderilmesi gereken parametre: sub_id (Zorunlu). Altyazı favorilerdeyse çıkarır, yoksa ekler.
Hatalı Altyazı Raporlama
Gönderilmesi gereken parametreler: sub_id ve reason (Örn: "Çeviri tamamen google translate").
Hata Kodları
| Kod | Anlamı | Açıklama |
|---|---|---|
400 | Bad Request | Eksik veya hatalı parametre gönderdiniz. |
401 | Unauthorized | API anahtarınız eksik veya geçersiz. |
403 | Forbidden | Yetkisiz işlem veya HTTP (güvensiz) bağlantı. |
404 | Not Found | Aradığınız ID'ye ait içerik mevcut değil. |
409 | Conflict | Bu dosya zaten veritabanında mevcut (MD5 Çakışması). |
413 | Payload Too Large | Dosya boyutu 5 MB sınırını aştı. |
429 | Too Many Requests | Hız sınırına takıldınız (Rate Limit). |