TürkAnime GUI
Sürüm notları: 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: Uzak bir FlareSolverr'a bağımlı kalmadan, uygulamanın içindeki Chromium (QtWebEngine) ayrı süreçte challenge çözüyor. FlareSolverr adresi isteyen için ayarlarda duruyor.
- Ç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: 723 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 (tek exe değil): QtWebEngine bir Chromium çalışma
zamanı taşıyor ve tek dosyaya sıkıştırıldığında alt-süreci bulamıyor. Zip'i bir
klasöre çıkar, turkanime-gui.exe ile başlat.
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: pip ile kurulan sürümde
cloudscrapergelmez; Cloudflare zinciri 5 yerine 4 kademeyle çalışır (bkz. Cloudflare Bypass Zinciri). Beş kademenin tamamı için hazır paketi ya da kaynaktan kurulumu kullan.
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ü — pip kurulumunda gelmez)
3. FlareSolverr (Uzak headless browser — opsiyonel, tanımlıysa)
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. |
| pip kurulumunda 4 kademeli CF zinciri | cloudscraper PyPI bağımlılıklarında yok; hazır paket ve kaynaktan 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: Opsiyonel — tanımlı değilse zincir gömülü QtWebEngine'e düşer.
- İ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 15 test hiç çalışmaz ama paket yine 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.0.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.0.0.tar.gz | 625.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| turkanime_gui-10.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / turkanime_gui-10.0.0.tar.gz
| Download URL | turkanime_gui-10.0.0.tar.gz |
|---|---|
| Size | 625.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
698eed9f441f1ab8d20d3b49b72fa11e3245379680e0a5e1e83d5513a01aba17
|
|
BLAKE2b-256 checksum How to use checksums |
21ad66043424b6485caf40926a998a569c5419650d4ca11ef5333f74bccac5e1
|
| 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.0.0-py3-none-any.whl
| Download URL | turkanime_gui-10.0.0-py3-none-any.whl |
|---|---|
| Size | 653.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bef21894d2163b25c9dd82703d4c33acf1b33605f44adce27c93310c8293c37a
|
|
BLAKE2b-256 checksum How to use checksums |
df0676738c30958d2bd436bced7d03ac642874ad3b44f36d673dfd8f711c0b9c
|
| 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
|