חברות ורשתות שידור
נקודות הקצה של חברות ורשתות מחזירות את השם, מדינת המקור ונתיב הלוגו של אולפן או רשת טלוויזיה לפי מזהה, ב-GET /3/company/{company_id} וב-GET /3/network/{network_id}. הנתיבים וה-JSON זהים ל-TMDB v3. העבירו את המזהים אל with_companies ו-with_networks ב-discover כדי להציג את הכותרים שלהן.
קבלת פרטי חברה
GET / מחזיר חברת הפקה אחת: שם, מדינת מקור ונתיב לוגו. הוא נושא גם description, headquarters, homepage ו-parent_company, אבל amodb משאיר אותם ריקים. המזהה הוא מזהה החברה של TMDB, ולכן מזהים ששמרתם קודם ממשיכים לעבוד.
הדוגמה שלמטה קוראת את חברת ההפקה הראשונה של סרט 550 ואז טוענת את החברה הזו.
COMPANY_ID=$(curl -sf "https://api.amodb.dev/3/movie/550" \
-H "Authorization: Bearer $AMODB_KEY" | jq '.production_companies[0].id')
curl -sf "https://api.amodb.dev/3/company/$COMPANY_ID" \
-H "Authorization: Bearer $AMODB_KEY"const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };
async function get(path) {
const res = await fetch(base + path, { headers });
if (!res.ok) throw new Error(`amodb returned ${res.status} for ${path}`);
return res.json();
}
const movie = await get('/movie/550');
const company = await get(`/company/${movie.production_companies[0].id}`);
console.log(company.name, company.origin_country, company.logo_path);import os
import requests
BASE = "https://api.amodb.dev/3"
HEADERS = {"Authorization": f"Bearer {os.environ['AMODB_KEY']}"}
def get(path):
r = requests.get(BASE + path, headers=HEADERS, timeout=10)
r.raise_for_status()
return r.json()
movie = get("/movie/550")
company = get(f"/company/{movie['production_companies'][0]['id']}")
print(company["name"], company["origin_country"], company["logo_path"])<?php
function amodb_get(string $path): array {
$ch = curl_init('https://api.amodb.dev/3' . $path);
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 for $path");
}
return json_decode($body, true);
}
$movie = amodb_get('/movie/550');
$company = amodb_get('/company/' . $movie['production_companies'][0]['id']);
echo $company['name'], ' ', $company['origin_country'], PHP_EOL;package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
var client = &http.Client{Timeout: 10 * time.Second}
func get(path string, out any) error {
req, err := http.NewRequest("GET", "https://api.amodb.dev/3"+path, nil)
if err != nil {
return err
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := client.Do(req)
if err != nil {
return err
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
return fmt.Errorf("amodb returned %s for %s", res.Status, path)
}
return json.NewDecoder(res.Body).Decode(out)
}
func main() {
var movie struct {
Companies []struct {
ID int `json:"id"`
} `json:"production_companies"`
}
if err := get("/movie/550", &movie); err != nil || len(movie.Companies) == 0 {
panic("movie has no production companies")
}
var company struct {
Name string `json:"name"`
OriginCountry string `json:"origin_country"`
}
if err := get(fmt.Sprintf("/company/%d", movie.Companies[0].ID), &company); err != nil {
panic(err)
}
fmt.Println(company.Name, company.OriginCountry)
}פרמטרים
company_idנתיבחובהמזהה חברה מספרי, למשל25.api_keyשאילתהאחד משנייםהמפתח שלכם. השתמשו בו או בכותרתAuthorization: Bearer.
שדות התגובה
| שדה | סוג | הערות |
|---|---|---|
description | string | תמיד מחרוזת ריקה. |
headquarters | string | עיר או אזור. ריק ברוב החברות. |
homepage | string | כתובת אתר. ריק ברוב החברות. |
id | integer | מזהה החברה. |
logo_path | string או null | מצרפים ל-https:/. |
name | string | שם החברה. |
origin_country | string | קוד ISO 3166-1 כמו US. יכול להיות ריק. |
parent_company | null | תמיד null. amodb לא ממלא את חברת האם. |
תגובה לדוגמה
{
"description": "",
"headquarters": "",
"homepage": "",
"id": 25,
"logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
"name": "20th Century Fox",
"origin_country": "US",
"parent_company": null
}אותו מבנה חוזר לכל מזהה חברה, למשל /3/company/1 עבור Lucasfilm.
קבלת פרטי רשת
GET / מחזיר רשת טלוויזיה: שם, מדינת מקור, נתיב לוגו, headquarters ו-homepage. אין לו description ואין parent_company. קראו מזהה רשת מהמערך networks של סדרה. הסדרה /3/tv/1399 מציגה את HBO עם מזהה 49.
{
"headquarters": "",
"homepage": "",
"id": 49,
"logo_path": "/tuomPhY2UtuPTqqFnKMVHvSb724.png",
"name": "HBO",
"origin_country": "US"
}| שדה | סוג | הערות |
|---|---|---|
headquarters | string | ריק ברוב הרשתות. |
homepage | string | ריק ברוב הרשתות. |
id | integer | מזהה הרשת. |
logo_path | string או null | נתיב קובץ הלוגו. |
name | string | שם הרשת. |
origin_country | string | קוד ISO 3166-1. מחרוזת ריקה בשירותי סטרימינג גלובליים כמו Netflix. |
נקודות הקצה בקבוצה הזו
כל הנתיבים חולקים את הבסיס https:/ ואת אותו אימות כמו נקודות קצה אחרות.
| שיטה ונתיב | מה מוחזר | פרמטרים |
|---|---|---|
GET / | רשומת חברה | company_id |
GET / | רשומת רשת | network_id |
GET /search/company | רשימה מדורגת של חברות עם id, name, logo_path, origin_country | query, page |
amodb לא מציע נתיבי alternative_names או images לחברות ולרשתות. הלוגו הוא ה-logo_path ברשומה עצמה.
לוגואים
בנו את כתובת הלוגו כ-https:/ ועוד logo_path. הקריאה GET /3/configuration מציגה את גדלי הלוגו: w92, w154, w185, w300, w500 ו-original. טבלת הגדלים המלאה נמצאת בעמוד תמונות. קבצי לוגו הם בעיקר PNG, וקבצי תמונה לא דורשים מפתח. לחברה בלי לוגו יש logo_path שהוא null.
סינון discover לפי חברה או רשת
מזהי חברות ורשתות שימושיים ביותר כמסננים. discover הופך מזהה לרשימה של כותרים.
| מסנן | פועל על | משמעות |
|---|---|---|
with_companies | /discover/movie ו-/discover/tv | כותרים שהחברות האלה הפיקו. |
with_networks | /discover/tv | סדרות שהרשתות האלה שידרו. discover של סרטים מתעלם ממנו. |
הפרידו כמה מזהים בפסיק כדי לדרוש את כולם, או בתו קו אנכי (מקודד כ-%7C) כדי לקבל כל אחד מהם. הקריאה הראשונה שלמטה מציגה סרטים של חברה אחת, ממוינים לפי פופולריות. הקריאה השנייה מציגה את הסדרות ש-HBO שידרה.
curl -sf "https://api.amodb.dev/3/discover/movie?with_companies=$COMPANY_ID&sort_by=popularity.desc&page=1" \
-H "Authorization: Bearer $AMODB_KEY"
curl -sf "https://api.amodb.dev/3/discover/tv?with_networks=49&sort_by=popularity.desc" \
-H "Authorization: Bearer $AMODB_KEY"תוצאות discover נשמרות בקצה במטמון 30 דקות ומגיעות 20 בעמוד. רשימת המסננים המלאה נמצאת בעמוד גילוי.
חיפוש חברה לפי שם
GET / מחזיר רשימה מדורגת. בכל שורה יש id, logo_path, name ו-origin_country. השורות אינן מדורגות לפי התאמה מדויקת: האולפן ששמו Lucasfilm Ltd. הוא עם מזהה 1 והוא השורה השלישית, אחרי שני שמות דומים. השוו name ו-origin_country לפני שלוקחים מזהה. כללי השאילתה בעמוד חיפוש. אין נתיב חיפוש רשתות.
שגיאות
חברה או רשת שלא קיימות מחזירות את גוף השגיאה של TMDB עם status_code 34. כשלים אחרים משתמשים באותו גוף.
| HTTP | status_code | מתי |
|---|---|---|
| 401 | 7 | המפתח חסר או שגוי. |
| 402 | 36 | תקופת המסלול הסתיימה. |
| 404 | 34 | אין חברה או רשת עם המזהה הזה, או שהמזהה אינו מספר. |
| 405 | 37 | שלחתם שיטת כתיבה. |
| 429 | 25 | מעל הבקשות שלכם לדקה. המתינו Retry-After שניות. |
את הרשימה המלאה ראו בעמוד שגיאות, ואת הכותרות בעמוד מגבלות קצב.
הערות מעשיות
- שמרו את ה-
idשל החברה ליד השם. שמות משתנים, מזהים לא. - בדקו אם
logo_pathהואnullלפני שמציגים אותו. אל תסתמכו עלhomepage,headquartersאוdescription, כי הם ריקים. - פרטי חברות ורשתות נשמרים בקצה במטמון 6 שעות. קבצי לוגו ב-
img.amodb.devנשמרים 30 יום. - רשת היא מושג של טלוויזיה. כדי לקבל את הסדרות שלה, השתמשו ב-
with_networksב-/discover/tv, לא ב-discover של סרטים. - כדי למצוא חברה לפי שם, השתמשו בחיפוש החברות שלמעלה, ואז בחרו את השורה הנכונה לפי
nameו-origin_country.