Files
metascraper/README.md

160 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# metascraper
Netflix ve Amazon Prime Video URL'lerinden film ve dizi meta verilerini (başlık, yıl, sezon bilgisi, thumbnail görseli) çıkaran modern Node.js kütüphanesi.
## 🚀 Kurulum
```bash
npm install metascraper
```
## 💻 Kullanım
### Film Meta Verisi
```javascript
import { scraperNetflix } from 'metascraper';
const movie = await scraperNetflix('https://www.netflix.com/tr/title/82123114');
console.log(movie);
// {
// "url": "https://www.netflix.com/title/82123114",
// "id": "82123114",
// "name": "ONE SHOT with Ed Sheeran",
// "year": "2025",
// "seasons": null,
// "thumbnail": "https://occ-0-7335-778.1.nflxso.net/dnm/api/v6/6AYY37jfdO6hpXcMjf9Yu5cnmO0/AAAABSkrIGPSyEfSWYQzc8rEFo6EtVV6Ls8WtPpNwR42MSKSNPNomZWV5P_l2MxGuJEkoPm71UT_eBK_SsTEH8pRslQr0sjpdhVHjxh4.jpg",
// "info": "Ed Sheeran, matematiğin mucizevi gücünü ve müziğin birleştirici gücünü sergileyen benzersiz bir performansla sahneye çıkıyor.",
// "genre": "Belgesel"
// }
```
### Dizi Meta Verisi
```javascript
import { scraperNetflix } from 'metascraper';
const series = await scraperNetflix('https://www.netflix.com/tr/title/80189685');
console.log(series);
// {
// "url": "https://www.netflix.com/title/80189685",
// "id": "80189685",
// "name": "The Witcher",
// "year": "2025",
// "seasons": "4 Sezon",
// "thumbnail": "https://occ-0-7335-778.1.nflxso.net/dnm/api/v6/6AYY37jfdO6hpXcMjf9Yu5cnmO0/AAAABSkrIGPSyEfSWYQzc8rEFo6EtVV6Ls8WtPpNwR42MSKSNPNomZWV5P_l2MxGuJEkoPm71UT_eBK_SsTEH8pRslQr0sjpdhVHjxh4.jpg",
// "info": "Mutasyona uğramış bir canavar avcısı olan Rivyalı Geralt, insanların çoğunlukla yaratıklardan daha uğursuz olduğu, karmaşa içindeki bir dünyada kaderine doğru yol alıyor.",
// "genre": "Aksiyon"
// }
```
### Amazon Prime Video Meta Verisi
```javascript
import { scraperPrime } from 'metascraper';
const movie = await scraperPrime('https://www.primevideo.com/-/tr/detail/0NHIN3TGAI9L7VZ45RS52RHUPL/ref=share_ios_movie');
console.log(movie);
// {
// "url": "https://www.primevideo.com/detail/0NHIN3TGAI9L7VZ45RS52RHUPL",
// "id": "0NHIN3TGAI9L7VZ45RS52RHUPL",
// "name": "Little Women",
// "year": "2020",
// "seasons": null,
// "thumbnail": "https://m.media-amazon.com/images/S/pv-target-images/c1b08ebea5ba29c47145c623e7d1c586290221ec12fa93850029e581f54049c4.jpg",
// "info": "In the years after the Civil War, Jo March lives in New York and makes her living as a writer, while her sister Amy studies painting in Paris.",
// "genre": "Dram"
// }
```
### URL Normalizasyonu
URL normalizasyonu artık `scraperNetflix` ve `scraperPrime` fonksiyonları içinde otomatik olarak yapılır.
## ✨ Özellikler
-**Çoklu Platform Desteği** - Netflix ve Amazon Prime Video scraping
-**Film ve Dizi Destekli** - Her tür içerik için meta veri
-**Thumbnail Görselleri** - Otomatik afiş/poster görselleri çıkarır
-**Film/Dizi Açıklamaları** - İçerik özet bilgilerini (info) çıkarır
-**Tür Bilgisi** - Türkçe ve İngilizce tür normalizasyonu
-**Türkçe Arayüz Temizleme** - "izlemenizi bekliyor" gibi metinleri temizler
-**JSON-LD Tabanlı** - Platformların yapısal verilerini kullanır
-**Hızlı ve Güvenilir** - Statik HTML scraping + Playwright fallback
-**Node.js 18+ Uyumlu** - Modern JavaScript özellikleri
-**Türkiye Odaklı** - Netflix Türkiye ve Prime Video URL'leri optimize edilmiş
## 🔧 API
### `scraperNetflix(url, options)`
Netflix URL'sinden meta veri çeker. URL normalizasyonu otomatik olarak yapılır.
**Parametreler:**
- `url` (string): Netflix URL'i
- `options` (object, isteğe bağlı):
- `headless` (boolean): Headless mode (default: false)
- `timeoutMs` (number): Timeout süresi (default: 15000)
- `userAgent` (string): Özel User-Agent
**Dönen Veri:**
```typescript
{
url: string, // Temizlenmiş URL
id: string, // Netflix ID
name: string, // İçerik adı
year: string | number, // Yılı
seasons: string | null, // Sezon bilgisi (diziler için)
thumbnail: string | null, // Afiş/poster görseli URL'si
info: string | null, // Film/dizi açıklaması
genre: string | null // Tür bilgisi (Türkçe)
}
```
### `scraperPrime(url, options)`
Amazon Prime Video URL'sinden meta veri çeker. URL normalizasyonu otomatik olarak yapılır.
**Parametreler:**
- `url` (string): Amazon Prime Video URL'i
- `options` (object, isteğe bağlı):
- `headless` (boolean): Headless mode (default: false)
- `timeoutMs` (number): Timeout süresi (default: 15000)
- `userAgent` (string): Özel User-Agent
**Dönen Veri:**
```typescript
{
url: string, // Temizlenmiş URL
id: string, // Prime Video ID
name: string, // İçerik adı
year: string | number, // Yılı
seasons: string | null, // Sezon bilgisi (diziler için, filmler için null)
thumbnail: string | null, // Afiş/poster görseli URL'si
info: string | null, // Film/dizi açıklaması
genre: string | null // Tür bilgisi (Türkçe normalize edilmiş)
}
```
## 🧪 Testler
```bash
npm test
```
## 🎮 Demo
```bash
npm run demo
```
## 📦 Gereksinimler
- Node.js 18+
- cheerio (otomatik)
- playwright (isteğe bağlı, headless mode için)
## 📄 Lisans
MIT