# API פרטי סרט

> נקודת הקצה של פרטי סרט מחזירה סרט לפי מזהה ב-GET /3/movie/{movie_id}. ה-JSON זהה ל-TMDB v3, ולכן לקוחות קיימים צריכים רק כתובת בסיס חדשה. הוסיפו append_to_response כדי לקבל בבקשה אחת קרדיטים, סרטונים, תמונות והרחבות של amodb: דירוגים, מצבי רוח, פסקולים, wikidata וזמני הקרנה.

## נקודת קצה

`GET /3/movie/{movie_id}`

```bash
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

תגובה:

```json
{
  "adult": false,
  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg",
  "belongs_to_collection": null,
  "budget": 63000000,
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 53,
      "name": "Thriller"
    }
  ],
  "homepage": "https://www.20thcenturystudios.com/movies/fight-club",
  "id": 550,
  "imdb_id": "tt0137523",
  "origin_country": [
    "US",
    "DE"
  ],
  "original_language": "en",
  "original_title": "Fight Club",
  "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy. Their concept catches on, with underground \"fight clubs\" forming in every town, until an eccentric gets in the wa...",
  "popularity": 39.0054,
  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",
  "production_companies": [
    {
      "id": 25,
      "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
      "name": "20th Century Fox",
      "origin_country": "US"
    },
    {
      "id": 508,
      "logo_path": "/4sGWXoboEkWPphI6es6rTmqkCBh.png",
      "name": "Regency Enterprises",
      "origin_country": "US"
    },
    {
      "id": 711,
      "logo_path": "/tEiIH5QesdheJmDAqQwvtN60727.png",
      "name": "Fox 2000 Pictures",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    },
    {
      "iso_3166_1": "DE",
      "name": "Germany"
    }
  ],
  "release_date": "1999-10-15",
  "revenue": 101209702,
  "runtime": 139,
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    }
  ],
  "status": "Released",
  "tagline": "Mischief. Mayhem. Soap.",
  "title": "Fight Club",
  "video": false,
  "vote_average": 8.437,
  "vote_count": 33042
}
```

## קבלת פרטי סרט

`GET /3/movie/{movie_id}` מחזיר את רשומת הליבה של סרט אחד: כותרות, תקציר, משך, ז'אנרים, תאריך יציאה, תקציב, הכנסות, חברות הפקה ונתיבי תמונות. המזהה הוא אותו מזהה מספרי ש-TMDB משתמש בו, ולכן סרט ששמרתם כ-`550` נשאר עם המזהה הזה כאן.

הדוגמה שלמטה מבקשת את הסרט באנגלית ומצרפת את הדירוגים שלו באותה קריאה.

```bash
curl -s "https://api.amodb.dev/3/movie/550?language=en-US&append_to_response=ratings" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const url = 'https://api.amodb.dev/3/movie/550?language=en-US&append_to_response=ratings';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.runtime, movie.ratings.imdb?.value);
```

```python
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US", "append_to_response": "ratings"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
movie = r.json()
imdb = movie["ratings"]["imdb"]
print(movie["title"], movie["runtime"], imdb and imdb["value"])
```

```php
<?php
$url = 'https://api.amodb.dev/3/movie/550?language=en-US&append_to_response=ratings';
$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
    throw new RuntimeException("amodb returned $status");
}
$movie = json_decode($body, true);
echo $movie['title'], ' ', $movie['runtime'], ' ', $movie['ratings']['imdb']['value'] ?? 'n/a', PHP_EOL;
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)

type Movie struct {
	Title   string `json:"title"`
	Runtime int    `json:"runtime"`
}

func main() {
	url := "https://api.amodb.dev/3/movie/550?language=en-US"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	if res.StatusCode != http.StatusOK {
		panic(res.Status)
	}
	var m Movie
	json.NewDecoder(res.Body).Decode(&m)
	fmt.Println(m.Title, m.Runtime)
}
```

### פרמטרים

| פרמטר                | מיקום  | חובה       | תיאור                                                                               |
| -------------------- | ------ | ---------- | ----------------------------------------------------------------------------------- |
| `movie_id`           | נתיב   | כן         | מזהה סרט מספרי, למשל `550`.                                                         |
| `api_key`            | שאילתה | אחד משניים | המפתח שלכם. השתמשו בו או בכותרת `Authorization: Bearer`.                            |
| `language`           | שאילתה | לא         | תגית TMDB כמו `en-US`, `ru-RU` או `pt-BR`. מוגשות 14 שפות בסיס. ברירת מחדל `en-US`. |
| `append_to_response` | שאילתה | לא         | עד 20 משאבי משנה מופרדים בפסיקים שימוזגו לתגובה.                                    |

### שדות התגובה

| שדה                            | סוג             | הערות                                                                                          |
| ------------------------------ | --------------- | ---------------------------------------------------------------------------------------------- |
| `id`                           | integer         | מזהה הסרט.                                                                                     |
| `imdb_id`                      | string או null  | מזהה IMDb כמו `tt0137523`.                                                                     |
| `title`, `original_title`      | string          | כותרת מתורגמת וכותרת מקורית.                                                                   |
| `original_language`            | string          | קוד שפה כמו `en`.                                                                              |
| `overview`, `tagline`          | string          | טקסט מתורגם, ריק כשאין תרגום.                                                                  |
| `homepage`                     | string          | אתר רשמי, ריק כשלא ידוע.                                                                       |
| `release_date`                 | string          | `YYYY-MM-DD`, ריק כשלא ידוע.                                                                   |
| `status`                       | string          | מצב יציאה, למשל `Released` או `In Production`.                                                 |
| `runtime`                      | integer         | דקות.                                                                                          |
| `budget`, `revenue`            | integer         | דולרים אמריקאיים, `0` כשלא ידוע.                                                               |
| `genres`                       | array           | אובייקטים עם `id` ו-`name`.                                                                    |
| `belongs_to_collection`        | object או null  | `id`, `name`, `poster_path`, `backdrop_path`. ראו [אוספים](https://amodb.dev/he/collections/). |
| `production_companies`         | array           | `id`, `logo_path`, `name`, `origin_country`.                                                   |
| `production_countries`         | array           | `iso_3166_1`, `name`.                                                                          |
| `spoken_languages`             | array           | `english_name`, `iso_639_1`, `name`.                                                           |
| `origin_country`               | array           | קודי מדינה כמו `US`.                                                                           |
| `poster_path`, `backdrop_path` | string או null  | מצרפים ל-`https://img.amodb.dev/t/p/{size}`. ראו [תמונות](https://amodb.dev/he/images-api/).   |
| `popularity`                   | number          | ציון יחסי שמשמש את רשימת הפופולריים.                                                           |
| `vote_average`, `vote_count`   | number, integer | ציון משתמשים מצטבר.                                                                            |
| `adult`, `video`               | boolean         | שניהם `false`. כותרים למבוגרים לא מוגשים לעולם.                                                |

### תגובה לדוגמה

`GET /3/movie/550?language=en-US&append_to_response=ratings`, עם מערכים וטקסט ארוכים שקוצרו:

```json
{
  "adult": false,
  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg",
  "belongs_to_collection": null,
  "budget": 63000000,
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 53,
      "name": "Thriller"
    }
  ],
  "homepage": "https://www.20thcenturystudios.com/movies/fight-club",
  "id": 550,
  "imdb_id": "tt0137523",
  "origin_country": [
    "US",
    "DE"
  ],
  "original_language": "en",
  "original_title": "Fight Club",
  "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking n...",
  "popularity": 39.0054,
  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",
  "production_companies": [
    {
      "id": 25,
      "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
      "name": "20th Century Fox",
      "origin_country": "US"
    },
    {
      "id": 508,
      "logo_path": "/4sGWXoboEkWPphI6es6rTmqkCBh.png",
      "name": "Regency Enterprises",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    },
    {
      "iso_3166_1": "DE",
      "name": "Germany"
    }
  ],
  "release_date": "1999-10-15",
  "revenue": 101209702,
  "runtime": 139,
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    }
  ],
  "status": "Released",
  "tagline": "Mischief. Mayhem. Soap.",
  "title": "Fight Club",
  "video": false,
  "vote_average": 8.437,
  "vote_count": 33039,
  "ratings": {
    "imdb": {
      "value": 8.8,
      "votes": 2669989
    },
    "kinopoisk": {
      "value": 8.7,
      "votes": null
    },
    "metacritic": {
      "value": 67,
      "votes": null
    },
    "rotten_tomatoes": {
      "value": 81,
      "votes": null
    },
    "tmdb": {
      "value": 8.437,
      "votes": 33039
    }
  }
}
```

בלוק `ratings` מגיע מ-`append_to_response`. כל ספק הוא אובייקט `{value, votes}` או `null`, כמתואר בעמוד [דירוגים](https://amodb.dev/he/ratings/).

## שילוב נתונים עם append_to_response

קריאה אחת יכולה להחליף שש. פרטו את משאבי המשנה שאתם צריכים וכל אחד מגיע תחת מפתח משלו. הערכים הרגילים של TMDB עובדים: `credits`, `videos`, `images`, `keywords`, `translations`, `external_ids`, `release_dates`, `alternative_titles`, `recommendations`, `similar`, `reviews`, `lists` ו-`watch/providers`. amodb מוסיף עוד חמישה.

| ערך           | מוסיף                                                         | פרטים                                                              |
| ------------- | ------------------------------------------------------------- | ------------------------------------------------------------------ |
| `ratings`     | ציונים של IMDb, Kinopoisk, Metacritic, Rotten Tomatoes ו-TMDB | [דירוגים](https://amodb.dev/he/ratings/)                           |
| `moods`       | מדדי מצב רוח                                                  | [מדדי מצב רוח](https://amodb.dev/he/moods/)                        |
| `soundtracks` | קטעים שנשמעים בסרט                                            | [פסקולים](https://amodb.dev/he/soundtracks/)                       |
| `wikidata`    | מזהה Wikidata, תקציב, הכנסות קופות, פרסים, מקומות צילום       | [חיפוש לפי מזהה חיצוני](https://amodb.dev/he/find-by-external-id/) |
| `showtimes`   | זמני הקרנה בבתי קולנוע כשהם ידועים                            | [זמני הקרנה](https://amodb.dev/he/showtimes/)                      |

כל בלוק מצורף נספר כחלק מבקשת HTTP אחת. בקשה עם עשרה ערכים מצורפים עדיין צורכת אחת מ-20, 40 או 120 הבקשות שלכם לדקה. הבלוקים המצורפים `ratings`, `moods` ו-`soundtracks` משמיטים את המפתח `id` שהנתיבים העצמאיים מחזירים.

## נקודות קצה קשורות לסרטים

כל הנתיבים שלמטה חולקים את הבסיס `https://api.amodb.dev/3` ואת הפרמטר `language`.

| שיטה ונתיב                                 | מה מוחזר                               | פרמטרים נוספים |
| ------------------------------------------ | -------------------------------------- | -------------- |
| `GET /movie/{movie_id}/alternative_titles` | `{id, titles}`, לעיתים קרובות מערך ריק | אין            |
| `GET /movie/{movie_id}/release_dates`      | תאריכי יציאה ודירוגי גיל לפי מדינה     | אין            |
| `GET /movie/{movie_id}/recommendations`    | רשימה של 20 סרטים מומלצים              | אין            |
| `GET /movie/{movie_id}/similar`            | רשימה של 20 סרטים דומים                | אין            |
| `GET /movie/{movie_id}/reviews`            | `results` ריק ברוב הכותרים             | אין            |
| `GET /movie/{movie_id}/lists`              | רשימות ציבוריות שמכילות את הסרט        | `page`         |
| `GET /movie/{movie_id}/watch/providers`    | ספקי סטרימינג והשכרה לפי מדינה         | אין            |
| `GET /movie/latest`                        | רשומת הסרט החדשה ביותר שנוספה          | אין            |

רשימות ההמלצות והדומים תמיד מחזירות עמוד 1 עם 20 פריטים. תגובת `lists` מדורגת עם `page`, 20 רשימות בעמוד. רשימות מדורגות במקומות אחרים ב-API מקבלות `page` מ-1 עד 500.

לקרדיטים, תמונות, סרטונים, תרגומים, מילות מפתח ומזהים חיצוניים יש עמודים משלהם: [קרדיטים](https://amodb.dev/he/credits/), [תמונות](https://amodb.dev/he/images-api/), [סרטונים וטריילרים](https://amodb.dev/he/videos-trailers/), [תרגומים](https://amodb.dev/he/translations/), [מילות מפתח](https://amodb.dev/he/keywords/) ו[חיפוש לפי מזהה חיצוני](https://amodb.dev/he/find-by-external-id/). amodb לא מציע את נתיבי `changes` של TMDB.

## שגיאות

שגיאות משתמשות בגוף של TMDB, למשל `{"success": false, "status_code": 34, "status_message": "The resource you requested could not be found."}`.

| HTTP | status_code | מתי                                                      |
| ---- | ----------- | -------------------------------------------------------- |
| 401  | 7           | המפתח חסר או שגוי.                                       |
| 402  | 36          | תקופת המסלול הסתיימה.                                    |
| 404  | 34          | אין סרט עם המזהה הזה, נתיב שאינו מוצע, או כותר למבוגרים. |
| 405  | 37          | קראתם לשיטת כתיבה כמו דירוג סרט.                         |
| 429  | 25          | חרגתם מהבקשות שלכם לדקה. המתינו `Retry-After` שניות.     |

הרשימה המלאה בעמוד [שגיאות](https://amodb.dev/he/errors/), ומגבלות לכל מסלול בעמוד [מגבלות קצב](https://amodb.dev/he/rate-limits/).

## הערות מעשיות

- שמרו את ה-`id` ואת ה-`imdb_id` יחד. כל אחד מהם מוצא את הסרט שוב דרך [חיפוש לפי מזהה חיצוני](https://amodb.dev/he/find-by-external-id/).
- בקשו את השפה שאתם מציגים. שדה טקסט יכול להיות ריק כשאין תרגום בשפה הזו, ולכן בדקו אם יש מחרוזת ריקה ובקשו שוב ב-`en-US` אם אתם צריכים גיבוי.
- שמרו פרטים במטמון בצד שלכם למשך כמה שעות. מטמון השרת כבר מחזיק אותם 6 שעות, ולכן מטמון לקוח קצר יותר לא מרוויח דבר.
- כדי להציג רשימות סרטים במקום לקרוא סרט אחד, ראו [חיפוש](https://amodb.dev/he/search/), [גילוי](https://amodb.dev/he/discover/) ו[טרנדים ורשימות](https://amodb.dev/he/trending-lists/).

## שאלות ותשובות

### האם אצטרך לשנות את קוד הלקוח של TMDB?

לא, עבור הנתיבים ש-amodb מגיש. נתיבים, פרמטרי שאילתה ושדות JSON זהים ל-TMDB v3. החליפו את כתובת הבסיס ל-https://api.amodb.dev/3 והשתמשו במפתח amodb שלכם ב-api_key או בכותרת Bearer.

### כמה תת-בקשות append_to_response יכול לשלב?

עד 20 ערכים ברשימה אחת מופרדת בפסיקים, כמו ב-TMDB. הקריאה כולה היא בקשת HTTP אחת, ולכן היא נספרת פעם אחת במגבלת הבקשות לדקה. שמות לא מוכרים מתעלמים מהם בלי שגיאה.

### באיזו שפה משתמשים כשמשמיטים את הפרמטר language?

אנגלית (en-US). הפרמטר language מקבל תגיות TMDB כמו ru-RU או pt-BR. מוגשות רק 14 שפות הבסיס, וכל תגית אחרת חוזרת לאנגלית.

### האם שיטות כתיבה של TMDB, כמו דירוג סרט, נתמכות?

לא. שיטות כתיבה לחשבון, להתחברות, לדירוג ולרשימות מחזירות 405 עם status_code 37 בגוף השגיאה של TMDB. נתיבי קריאה לכותרים, אנשים, רשימות וחיפוש מוגשים. כמה נתיבים של TMDB, כמו changes, אינם מוצעים.

### כמה הנתונים עדכניים?

פרטי סרט נשמרים במטמון 6 שעות, ונקודת הקצה של הסרט החדש ביותר 10 דקות. שינוי ברשומה יכול לקחת עד 6 שעות להופיע בקריאת פרטים.

## עמודים קשורים

- [API סדרות טלוויזיה](https://amodb.dev/he/tv-series/): API סדרות טלוויזיה עם אותם נתיבים ו-JSON כמו TMDB v3. קבלו סדרה לפי מזהה ב-GET /3/tv/{series_id} עם עונות, רשתות והפרק הבא, וגם סיווגי גיל וספקי צפייה.
- [API קרדיטים](https://amodb.dev/he/credits/): API קרדיטים עם אותם נתיבים ו-JSON כמו TMDB v3. קבלו שחקנים וצוות של סרטים, סדרות, עונות ופרקים, עם credit_id, order, department ו-job ועם guest_stars בפרקים.
- [API תמונות ושרת תמונות](https://amodb.dev/he/images-api/): API תמונות סרטים עם נתיבי TMDB v3: הציגו פוסטרים, תמונות רקע, לוגואים ותמונות סצנה לכל כותר, וטענו אותם מ-img.amodb.dev ב-10 גדלים בלי מפתח.
- [דירוגי סרטים וסדרות](https://amodb.dev/he/ratings/): API דירוגי סרטים וסדרות שמחזיר ציוני IMDb, Kinopoisk, Metacritic, Rotten Tomatoes ו-TMDB לכותר בקריאה אחת, עם value ו-votes ו-null לכל מקור שאינו ידוע.
- [נקודות קצה של מגמות ורשימות](https://amodb.dev/he/trending-lists/): API סרטים פופולריים עם נתיבי TMDB v3: טבלאות יומיות ושבועיות, ורשימות מוקרנים עכשיו, פופולריים, מדורגים וצפויים לסרטים ולסדרות, במטמון 30 דקות.
- [מדריך למתחילים](https://amodb.dev/he/quickstart/): בצעו את הקריאה הראשונה ל-amodb: קבלו מפתח, בקשו פרטי סרט ב-curl, JavaScript, Python, PHP או Go, ואז טענו את הפוסטר מ-img.amodb.dev. פחות מ-2 דקות.

עודכן: 2026-10-19. Source: https://amodb.dev/he/movies/
