TürkAnime GUI
Sürüm notları: V10.1.0 · V10.0.0
TürkAnime GUI tamamen arayüz odaklı bir anime keşif, izleme ve indirme uygulaması. Arayüz PySide6 + QtWebEngine üzerine kurulu; V10.0.0 ile CustomTkinter yığını kaldırıldı ve tek arayüz kaldı. Terminal (CLI) sürümü çalışmaya devam ediyor ama geliştirme masaüstü uygulamasına odaklı.
✨ Öne Çıkan Özellikler
- 8 kaynakta paralel arama: TürkAnime, AnimeciX, Anizle, TRAnimeİzle, OpenAnime, Tranimaci, AnimeDepo ve AniList aynı anda aranır. Bunlardan 7'si video sunar; AniList yalnızca meta veri ve kullanıcı listesi sağlar.
- Alakaya göre sıralama: Sonuçlar sorguya yakınlığa göre dizilir. "one piece" aramasında ilk sıra One Piece olur — "Koisuru One Piece" değil.
- Gömülü Cloudflare atlatma: Uygulamanın içindeki Chromium (QtWebEngine)
ayrı süreçte challenge çözüyor; uzak bir FlareSolverr olmadan da çalışır.
Dikkat: yine de kutudan çıktığı hâlde
flaresolverr_urlayarı BOŞ DEĞİL, projenin sunucusu (node-kyb.bariskeser.com:8191) yazılı gelir ve zincirin 3. kademesi oraya uğrar. İstemiyorsanız Ayarlar → FlareSolverr URL alanını boşaltın; zincir gömülü çözücüyle çalışmaya devam eder. - Çok kaynaklı bölüm birleştirme: Aynı anime birden çok kaynakta varsa
bölümler
(sezon, bölüm)anahtarıyla tek listede birleşir. - Gelişmiş indirme sistemi: Bölüm başına ilerleme çubukları, otomatik yeniden deneme, tek tuşla iptal, renkli durum göstergesi.
- Tek tıkla indirme ve oynatma: Bölümleri sıra bekletmeden indir, izlerken otomatik kaydet.
- AniList entegrasyonu: OAuth2 ile hesabına bağlan, listelerini senkron tut. Gizli anahtar (client secret) gerekmez — bkz. AniList Girişi.
- Fansub ve kalite seçimi: Desteklenen kaynaklardan en temiz sürümü bulur.
- Kart tabanlı arayüz: Hover efektli kartlar, batch rendering, poster galerileri.
- Discord Rich Presence: O anda ne izlediğini arkadaşlarınla paylaş.
- Çoklu platform: Windows/Linux/macOS için hazır paket, Python 3.9+ olan her platformdan pip ile çalıştır.
- Testler: 988 otomatik test (pytest + pytest-qt), ağa çıkmaz.
🧭 Uygulama Akışı
- Keşfet: Jikan (MyAnimeList) trend ve sezon listeleri; Jikan erişilemezse AniList trendlerine düşülür.
- Ara: 8 kaynakta paralel arama; yavaş kaynak aramayı çökertmez, zaman aşımına uğrayan kaynak boş döner.
- İndir & Oynat: mpv entegrasyonu sayesinde indirme ve izleme tek pencerede.
- İlerleme Takibi: İzlediklerin otomatik tutulur, AniList'e yansır.
📺 Ekran Görüntüleri
Anasayfa Ekranı
Anime Ekranı
🎮 Discord Rich Presence
TürkAnime GUI, Discord profilinde canlı durum gösterebilir:
- Ana sayfa gezinme
- Trend veya arama ekranları
- İndirme süreci
- İzlenilen anime ve bölüm
İpucu: Ayarlar → Discord Rich Presence bölümünden tek tuşla aç/kapat. Özellik isteğe bağlıdır;
pypresenceyoksa uygulama normal çalışmaya devam eder.
📥 Kurulum
1. Hazır Paket (Önerilen)
Releases sayfasından platformuna uyanı indir:
| Dosya | Ne |
|---|---|
turkanime-gui-windows.zip |
Arayüz — Windows (mpv, ffmpeg, aria2c, yt-dlp gömülü) |
turkanime-gui-linux.zip / turkanime-gui-macos.zip |
Arayüz — Linux / macOS |
turkanime-cli-windows.exe / -linux / -macos |
Terminal sürümü (tek dosya) |
*.sha256 |
Yayımlanan dosyanın SHA-256 özeti |
Arayüz paketi zip'tir ama içinde tek bir çalıştırılabilir dosya vardır
(v10.1.0'dan itibaren; _internal/ klasörü yok). Zip'i aç, turkanime-gui.exe
ile başlat. 10.0.0'dan yükseltiyorsan eski kurulumun yanındaki _internal/
klasörü artık gereksizdir, silebilirsin.
Zip kullanılmasının sebebi dosyanın bölünmesi değil, indirme sayfasının ve
otomatik güncelleyicinin .zip adlarına bağlı olması.
Burada eskiden "QtWebEngine tek dosyaya sıkıştırıldığında alt-sürecini bulamıyor" yazıyordu. Ölçüldü ve doğru çıkmadı: tek dosya paketinde
QtWebEngineProcess.exeaçılım dizininde yerinde duruyor ve arayüz açılıyor. Tek dosyanın gerçek bedeli başka: her açılışta ~9 sn arşiv açılımı, ve Cloudflare çözücü alt-süreci kendi açılımını yaptığı için her duvarda ~9 sn daha. Ayrıntı: V10.1.0 sürüm notları.
2. PyPI Üzerinden
pip install "turkanime-gui[gui]"
turkanime-gui
turkanime-cli
[gui]ekstrası PySide6'yı (ve opsiyonelpypresence'ı) kurar. Sadepip install turkanime-guiyalnızca terminal sürümünü çalıştırır.Not (düzeltildi): Burada eskiden "pip ile kurulan sürümde
cloudscrapergelmez, Cloudflare zinciri 5 yerine 4 kademeyle çalışır" yazıyordu. Doğru değil:cloudscraperhempyproject.tomlhemrequirements.txtiçinde zorunlu bağımlılık. Her kurulum biçimi beş kademenin tamamını taşıyor (bkz. Cloudflare Bypass Zinciri).
3. Kaynak Koddan
git clone https://github.com/barkeser2002/turkanime-gui.git
cd turkanime-gui
pip install -r requirements-gui.txt
python -m turkanime_api.gui.qt
🚀 Kullanım
- İlk açılışta ffmpeg/mpv/aria2c/yt-dlp denetlenir; eksik varsa kurulum sihirbazı açılır (hazır pakette hepsi gömülü gelir).
- TRAnimeİzle kullanmak istiyorsan Ayarlar → TRAnimeİzle Cookie → "Tarayıcıdan Al" düğmesine bas. Uygulama içindeki tarayıcı açılır, bot kontrolünü çözersin, çerez kaydedilir.
- FlareSolverr kullanmak istiyorsan Ayarlar → FlareSolverr URL bölümünden sunucu adresini gir (zorunlu değil).
- Keşfet veya Ara sekmesinden anime seç.
- Bölümü oynat ya da indir; her bölüm için ayrı ilerleme çubuğu, yeniden deneme ve iptal desteği mevcut.
- AniList'e bağlanmak istersen Ayarlar → AniList → "AniList'e Giriş Yap"; gizli anahtar (client secret) gerekmez, ayrıntı için AniList Girişi.
📺 Desteklenen Kaynaklar
Video Kaynakları
| Kaynak | Açıklama |
|---|---|
| TürkAnime | Klasik Türk anime kaynağı (şifreli embed çözümü) |
| AnimeciX | Dinamik video ID, geniş fansub seçenekleri |
| Anizle | Geniş arşiv (anizm.pro). Site video.js/HLS'e geçtiği için bölüm başına sınırlı kaynak dönebiliyor |
| TRAnimeİzle | Cookie tabanlı oturum — Ayarlar'dan gömülü tarayıcıyla çerez alınmalı |
| OpenAnime | SvelteKit SSR JSON çıkarımı + CF bypass. Arama ve bölüm listesi çalışıyor; stream uçları şu an 404 dönüyor (bkz. Bilinen Kısıtlar) |
| Tranimaci | SHA-256 proof-of-work WAF + JS kapısı (QtWebEngine ile aşılır), multi-CDN mp4 |
| AnimeDepo | GitLab üzerinde barındırılan statik arşiv; gerçek arama ucu yok, dizin indirilip yerel fuzzy arama yapılır |
Meta Veri ve Keşif
| Servis | Rol |
|---|---|
| AniList | Arama sonuçlarına katılır, kullanıcı listesi ve OAuth2 girişi sağlar. Video sunmaz. |
| Jikan (MyAnimeList) | Yalnızca Keşfet sekmesindeki trend/sezon listeleri. Arama motoru değildir. |
Cloudflare Bypass Zinciri
1. curl_cffi (TLS fingerprint taklidi)
2. cloudscraper (JS Challenge çözümü — zorunlu bağımlılık, her kurulumda var)
3. FlareSolverr (Uzak headless browser — VARSAYILAN OLARAK DOLU gelir)
4. QtWebEngine (Yerel gömülü Chromium, ayrı süreçte)
5. requests (Son çare)
Zincir, HTTP 200 dönen challenge sayfalarını da tanır ve başarı saymaz; aksi hâlde ilk adımda kısa devre olup gerçek tarayıcıya hiç ulaşılmıyordu. Selenium/undetected-chromedriver bağımlılıkları V10.0.0 ile tamamen kaldırıldı.
Video Sunucuları
TürkAnime embed'lerinde desteklenen oynatıcılar (öncelik sırasıyla,
turkanime_api/objects.py::SUPPORTED):
Yandisk Alucard GDrive Mail PixelDrain Amaterasu HDVID
Odnoklassniki Dailymotion Sibnet VK Vidmoly YourUpload
Sendvid Myvi Uqload
MP4upload listeden çıkarıldı: çözümlenmiş gibi görünüp oynatılamayan bağlantılar üretiyordu. Diğer kaynaklar (Anizle, Tranimaci, AnimeDepo, OpenAnime) doğrudan mp4/HLS bağlantısı döndürür, bu listeden geçmez.
⚠️ Bilinen Kısıtlar
Bunlar uygulamanın hataları değil, kaynak sitelerin getirdiği sınırlar:
| Kısıt | Ne oluyor |
|---|---|
| TRAnimeİzle çerez istiyor | Çerez alınmadan bu kaynak bölüm döndürmez. Ayarlar → "Tarayıcıdan Al" ile bir kez alınır. |
| OpenAnime stream 404 | Arama ve bölüm listesi çalışıyor, ama CDN uçları not_found dönüyor. api.openani.me kimlik doğrulama ("Vanguard") istiyor. Uygulama bu durumda sessiz kalmaz, sebebi yazar. |
Geçersiz: cloudscraper zorunlu bağımlılık (pyproject.toml, requirements.txt); her kurulum 5 kademenin tamamını taşır. |
|
| Anizle bölüm başına sınırlı kaynak | Site video.js/HLS'e geçti; bazı bölümlerde tek stream dönebiliyor. |
🔧 Sistem Gereksinimleri
- Python: 3.9+ (kaynaktan/pip ile çalıştırmak için; hazır pakette gerekmez). Test edilen sürümler: 3.9 – 3.13.
- FFmpeg, mpv, aria2c, yt-dlp: Hazır Windows paketinde gömülü gelir; kaynaktan çalıştırıyorsan uygulama içindeki sihirbaz indirip kurar.
- FlareSolverr: Varsayılan ayarda projenin sunucusu yazılıdır, yani kurulumdan sonra 3. kademe uzak bir sunucuya gider. Alanı boşaltırsanız zincir doğrudan gömülü QtWebEngine'e düşer ve hiçbir istek dışarı çıkmaz.
- İnternet bağlantısı: Kaynaklara erişim ve AniList senkronu için.
🧪 Testler
Otomatik test paketi (ağa çıkmaz, Qt offscreen koşar):
pip install -r requirements-gui.txt
pip install pytest pytest-qt PyYAML
python -m pytest tests/
PyYAMLneden gerekli:tests/test_release_workflow.pyyayın workflow'unu ayrıştırıyor ve PyYAML yoksaimportorskipile sessizce atlanıyor. Kurmadan koşarsan o dosyanın tamamı hiç çalışmaz ama paket yeşil görünür. PyYAML hiçbirrequirementsdosyasında yer almıyor, elle kurulmalı.
Kaynak adaptörleri gerçek ağa çıkan ayrı bir betikle sınanır. Bu betik
pytest'e dahil değildir:
python tests/adapters-test-all.py
python tests/adapters-test-all.py --source animecix
python tests/adapters-test-all.py --skip-streams
Betik şu an 4 kaynağı kapsıyor:
animecix,anizle,tranime,animedepo. OpenAnime, Tranimaci ve TürkAnime bu betikte yok.
Test Kapsamı
| Alan | Testler |
|---|---|
| Arayüz (pytest-qt) | Keşif/arama/detay/bölüm/indirme sayfaları, oynatma, izleme listesi, güncelleme servisi, gereksinim sihirbazı, Discord RPC, çerez tarayıcısı, worker havuzu |
| Arama | Alakaya göre sıralama, çok kaynaklı arama zaman aşımı, başlık eşleştirme |
| Kaynaklar | Anizle CF bypass zinciri, OpenAnime arama ve stream doğrulama, çerez yönetimi |
| Cloudflare | Kademe sırası, challenge tanıma, timeout davranışı, çözücü giriş noktası |
| Çekirdek | Bölüm birleştirme ve ayrıştırma, indirme yolu güvenliği, atomik JSON yazımı, ağ izolasyonu |
| Yayın | release.yml sürüm türetme, test kapısı, version.json şeması, PyPI sırrı |
| Adaptörler (ağ, ayrı betik) | AnimeciX, Anizle, TRAnimeİzle, AnimeDepo — arama, bölüm listesi, stream |
Not: TRAnimeİzle ağ testleri geçerli bir cookie gerektirir. Cookie süresi dolmuşsa bu testler beklenen şekilde başarısız olur.
🗂️ İlgili Depolar
| Depo | Ne |
|---|---|
| turkanime-gui | Bu depo — masaüstü uygulaması, terminal sürümü ve kaynak adaptörleri |
| turkanime-server | Arşiv sunucusu: kaynak tarayıcısı, yayıncı ve Flask API (private) |
Sunucu tarafı V10.0.0 ile ayrı bir depoya taşındı. Kaynak adaptörlerini bu depodan yeniden kullanır; ikinci bir kazıyıcı yazılmadı.
👨💻 Katkıda Bulun
- Hata bildirimi veya feature isteği için Issues sekmesini kullan.
- PR göndermeden önce kısa bir açıklama ve ekran görüntüsü eklemek incelemeyi hızlandırır.
- Dokümantasyon ve çeviri katkıları da memnuniyetle kabul edilir.
Yayımlanan her dosyanın yanına
.sha256özeti eklenir; uygulama içi güncelleme de indirdiği paketi aynı özetle doğrular, uyuşmazsa dosyayı siler.
📄 Lisans
Bu proje Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) ile lisanslanmıştır.
| İzin var | İzin yok |
|---|---|
| Paylaşmak ve kopyalamak | Ticari kullanım |
| Kaynak göstererek atıfta bulunmak | Değiştirilmiş sürüm dağıtmak |
Kullanım ve sorumluluk sınırları için DISCLAIMER dosyasını oku.
📧 İletişim
Sitenizi kullanmamamı, kaldırmamı istiyorsanız veya başka talepleriniz için:
- E-posta: info@bariskeser.com
- Discord: bariskeser
Release files for turkanime-gui 10.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| turkanime_gui-10.1.0.tar.gz | 642.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| turkanime_gui-10.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / turkanime_gui-10.1.0.tar.gz
| Download URL | turkanime_gui-10.1.0.tar.gz |
|---|---|
| Size | 642.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
691394475fda540e2fd8cbe327dbcb5aa75979aec436d0d69f8f58131ee8633a
|
|
BLAKE2b-256 checksum How to use checksums |
5bc5bf70aedaaee54105dc5a11b2b0602170c695fbe0e57344c59a807a9cddc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.15 Linux/6.17.0-1022-azure
|
Release files / turkanime_gui-10.1.0-py3-none-any.whl
| Download URL | turkanime_gui-10.1.0-py3-none-any.whl |
|---|---|
| Size | 671.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f1ff90f396db1beca00d817a1be6aea5cae14f94a989626eb8832e7acbcba6f1
|
|
BLAKE2b-256 checksum How to use checksums |
e2764fa64673452526141b87641e1ab808defd441fd51282b6f5a769a23698c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.15 Linux/6.17.0-1022-azure
|