{
  "aboutHtml": "<p>Το Veo 3.1 είναι το μοντέλο δημιουργίας βίντεο της Google για σύντομη οπτικοακουστική σκηνή από κείμενο ή περιγραφή με βάση εικόνα. Το προφίλ παραγωγής του υποστηρίζει δημιουργία από κείμενο, από εικόνα και με καθοδηγούμενα πρώτα/τελευταία καρέ, με παραγόμενο ήχο, αναφορές οπτικών στοιχείων και χωριστή ροή συνέχειας. Χρησιμοποιήστε το για ανάπτυξη κινηματογραφικής ιδέας, σύντομης αφήγησης προϊόντος ή οπτικού τμήματος με καθορισμένη σκηνή, δράση και ακουστική εμπειρία.</p><p>Περιγράψτε πρώτα το θέμα και το ορατό γεγονός. Καθορίστε το περιβάλλον, την ώρα της ημέρας και το φως και έπειτα την οπτική γωνία ή κίνηση κάμερας και το επιθυμητό οπτικό ύφος. Μια πρωτότυπη περιγραφή σκηνής θα μπορούσε να δείχνει γυάλινο δοχείο σε σκούρα επιφάνεια στούντιο, με αργή πλευρική κίνηση που αποκαλύπτει αντανάκλαση, ενώ ένας απαλός ήχος περιβάλλοντος συνοδεύει την αποκάλυψη. Κάθε οδηγία δίνει ορατό ή ακουστό χαρακτηριστικό που μπορεί να αξιολογηθεί στο ολοκληρωμένο αποτέλεσμα.</p><p>Το πλαίσιο προτροπών της Google αντιμετωπίζει θέμα, δράση, σκηνή, κάμερα και αισθητική ως χωριστά μέρη της περιγραφής. Χρησιμοποιήστε όσα υπηρετούν το πλάνο, αντί να προσθέτετε κάθε πιθανό προσδιορισμό. Γράψτε την οδηγία στα αγγλικά για το τεκμηριωμένο προφίλ προτροπών. Αν η σκηνή έχει αρκετές ενέργειες, δηλώστε τη σχέση τους και κρατήστε τες ανάλογες προς σύντομο κλιπ, ώστε μια αποκάλυψη ή αντίδραση να παραμένει ευανάγνωστη.</p><p>Μια αρχική εικόνα καθορίζει την εμφάνιση και σύνθεση της αρχής. Χρησιμοποιήστε την όταν ο χαρακτήρας, το προϊόν ή το περιβάλλον υπάρχει ήδη ως οπτικό αρχείο και περιγράψτε την κίνηση που πρέπει να εξελιχθεί από αυτό. Ένα τελευταίο καρέ προσθέτει σύνθεση στόχου για το τέλος. Προετοιμάστε ακραία καρέ που επικοινωνούν εύλογη μετάβαση και διατηρούν τις λεπτομέρειες που προσδιορίζουν το κύριο θέμα και εξετάστε κατόπιν την κίνηση μεταξύ τους μετά τη δημιουργία.</p><p>Οι αναφορές οπτικών στοιχείων υπηρετούν άλλο σκοπό: καθοδηγούν την εμφάνιση χαρακτήρα ή αντικειμένου σε νέα παραγόμενη σκηνή, ενώ τα ακραία καρέ ορίζουν συγκεκριμένες στιγμές της. Επιλέξτε αναφορές που δείχνουν τα σημαντικά οπτικά γνωρίσματα και κάντε σαφή τον ρόλο κάθε στοιχείου στην προτροπή. Η προδιαγραφή δημιουργίας βίντεο από εικόνες αναφοράς του μοντέλου παραγωγής χρησιμοποιεί έξοδο οκτώ δευτερολέπτων για αυτή τη ροή αναφορών, χωριστά από τη συνήθη επιλογή διάρκειας με βάση κείμενο.</p><p>Το συνηθισμένο προφίλ παραγωγής του κατασκευαστή δημιουργεί κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 καρέ ανά δευτερόλεπτο. Αναφέρει οριζόντιο κάδρο 16:9 και κάθετο 9:16, έως τέσσερα βίντεο εξόδου ανά προτροπή και αναλύσεις εξόδου 720p, 1080p και 4K. Η μορφή βίντεο εξόδου είναι MP4. Η προδιαγραφή από εικόνα δέχεται JPEG ή PNG, αναφέρει μέγιστο εικόνας εισόδου 20 MB και υποστηρίζει ρυθμίσεις εισόδου 720p/1080p. Επιλέξτε το προφίλ εξόδου για την επιθυμητή θέση και κρατήστε τη σύνθεση καρέ ευανάγνωστη σε αυτό το μέγεθος.</p><p>Ο εγγενής ήχος μπορεί να συνοδεύει την ορατή σκηνή. Προσδιορίστε προφορικές φράσεις, ατμόσφαιρα και ηχητικά εφέ ως μέρη της ίδιας περιγραφής, ονομάζοντας το θέμα ή γεγονός που παράγει καθένα. Μια οδηγία διαλόγου και μια οδηγία κάμερας απαντούν σε διαφορετικά ερωτήματα: η μία καθορίζει την ερμηνεία και η άλλη πώς τη βλέπει ο θεατής. Κρατήστε τα λόγια μέσα στον χρήσιμο χρόνο ομιλίας του κλιπ και ελέγξτε τον ήχο για καταληπτότητα και σχέση με τη δράση.</p><p>Για συνέχεια, ο κατασκευαστής παρέχει χωριστή ροή επέκτασης βίντεο. Ξεκινήστε από κατάλληλο παραγόμενο αρχικό κλιπ και περιγράψτε το επόμενο ορατό γεγονός ή αλλαγή στη σκηνή. Διατηρήστε το αρχικό και το συνεχιζόμενο τμήμα, ώστε η ένωσή τους να ελεγχθεί ως προς εμφάνιση, κίνηση και ήχο. Οι συνήθεις επιλογές διάρκειας και ανάλυσης νέας δημιουργίας δεν πρέπει να αντιμετωπίζονται ως καθολική σύμβαση για κάθε λειτουργία επέκτασης.</p><p>Μια αρνητική περιγραφή μπορεί να εστιάζει τις εξαιρέσεις στις οπτικές απαιτήσεις της εργασίας. Για σειρά παραλλαγών προϊόντος, κρατήστε σταθερά θέμα και σύνθεση αλλάζοντας μία δημιουργική κατεύθυνση, όπως φωτισμό ή απόσταση κάμερας. Καταγράψτε προτροπή, αναφορές και επιλεγμένες ρυθμίσεις μαζί με το αποτέλεσμα. Αυτό επιτρέπει σύγκριση χρήσιμης δημιουργικής διαφοράς αντί για συλλογή άσχετων δημιουργιών.</p><p>Το κανονικό προφίλ παραγωγής Veo 3.1 και το Veo 3.1 Fast έχουν διαφορετικά προφίλ ανάλυσης εξόδου. Το Fast αναφέρει 720p και 1080p· το κανονικό 3.1 αναφέρει επίσης 4K. Κρατήστε την επιλεγμένη έκδοση συνδεδεμένη με το αποτέλεσμα, χωρίς σιωπηρή αντικατάσταση αναγνωριστικού μοντέλου παραγωγής με παλαιότερο προφίλ Preview ή άλλη γενιά Veo. Τόσο η εμφάνιση θέματος όσο και η υποστηριζόμενη λειτουργία εξαρτώνται από την επιλεγμένη ροή.</p><p>Η δημιουργία είναι λειτουργία της οποίας το ολοκληρωμένο αποτέλεσμα παρέχει αρχεία βίντεο για αναπαραγωγή και μετέπειτα επεξεργασία. Κρατήστε τα επιστρεφόμενα αρχεία με τα αρχικά καρέ, τα στοιχεία αναφοράς και την περιγραφή τους και διατηρήστε τις παρεχόμενες πληροφορίες προέλευσης περιεχομένου. Εξετάστε κάθε πραγματική έξοδο για εμφάνιση θέματος, δράση, κάδρο, ήχο και τελική σύνθεση. Χρησιμοποιήστε το επιλεγμένο κλιπ ως δομικό στοιχείο παραγωγής, με τίτλους, μεταβάσεις ή άλλη τελική επεξεργασία να προστίθενται στο γύρω μοντάζ.</p>",
  "aboutText": "Το Veo 3.1 είναι το μοντέλο δημιουργίας βίντεο της Google για σύντομη οπτικοακουστική σκηνή από κείμενο ή περιγραφή με βάση εικόνα. Το προφίλ παραγωγής του υποστηρίζει δημιουργία από κείμενο, από εικόνα και με καθοδηγούμενα πρώτα/τελευταία καρέ, με παραγόμενο ήχο, αναφορές οπτικών στοιχείων και χωριστή ροή συνέχειας. Χρησιμοποιήστε το για ανάπτυξη κινηματογραφικής ιδέας, σύντομης αφήγησης προϊόντος ή οπτικού τμήματος με καθορισμένη σκηνή, δράση και ακουστική εμπειρία.\n\nΠεριγράψτε πρώτα το θέμα και το ορατό γεγονός. Καθορίστε το περιβάλλον, την ώρα της ημέρας και το φως και έπειτα την οπτική γωνία ή κίνηση κάμερας και το επιθυμητό οπτικό ύφος. Μια πρωτότυπη περιγραφή σκηνής θα μπορούσε να δείχνει γυάλινο δοχείο σε σκούρα επιφάνεια στούντιο, με αργή πλευρική κίνηση που αποκαλύπτει αντανάκλαση, ενώ ένας απαλός ήχος περιβάλλοντος συνοδεύει την αποκάλυψη. Κάθε οδηγία δίνει ορατό ή ακουστό χαρακτηριστικό που μπορεί να αξιολογηθεί στο ολοκληρωμένο αποτέλεσμα.\n\nΤο πλαίσιο προτροπών της Google αντιμετωπίζει θέμα, δράση, σκηνή, κάμερα και αισθητική ως χωριστά μέρη της περιγραφής. Χρησιμοποιήστε όσα υπηρετούν το πλάνο, αντί να προσθέτετε κάθε πιθανό προσδιορισμό. Γράψτε την οδηγία στα αγγλικά για το τεκμηριωμένο προφίλ προτροπών. Αν η σκηνή έχει αρκετές ενέργειες, δηλώστε τη σχέση τους και κρατήστε τες ανάλογες προς σύντομο κλιπ, ώστε μια αποκάλυψη ή αντίδραση να παραμένει ευανάγνωστη.\n\nΜια αρχική εικόνα καθορίζει την εμφάνιση και σύνθεση της αρχής. Χρησιμοποιήστε την όταν ο χαρακτήρας, το προϊόν ή το περιβάλλον υπάρχει ήδη ως οπτικό αρχείο και περιγράψτε την κίνηση που πρέπει να εξελιχθεί από αυτό. Ένα τελευταίο καρέ προσθέτει σύνθεση στόχου για το τέλος. Προετοιμάστε ακραία καρέ που επικοινωνούν εύλογη μετάβαση και διατηρούν τις λεπτομέρειες που προσδιορίζουν το κύριο θέμα και εξετάστε κατόπιν την κίνηση μεταξύ τους μετά τη δημιουργία.\n\nΟι αναφορές οπτικών στοιχείων υπηρετούν άλλο σκοπό: καθοδηγούν την εμφάνιση χαρακτήρα ή αντικειμένου σε νέα παραγόμενη σκηνή, ενώ τα ακραία καρέ ορίζουν συγκεκριμένες στιγμές της. Επιλέξτε αναφορές που δείχνουν τα σημαντικά οπτικά γνωρίσματα και κάντε σαφή τον ρόλο κάθε στοιχείου στην προτροπή. Η προδιαγραφή δημιουργίας βίντεο από εικόνες αναφοράς του μοντέλου παραγωγής χρησιμοποιεί έξοδο οκτώ δευτερολέπτων για αυτή τη ροή αναφορών, χωριστά από τη συνήθη επιλογή διάρκειας με βάση κείμενο.\n\nΤο συνηθισμένο προφίλ παραγωγής του κατασκευαστή δημιουργεί κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 καρέ ανά δευτερόλεπτο. Αναφέρει οριζόντιο κάδρο 16:9 και κάθετο 9:16, έως τέσσερα βίντεο εξόδου ανά προτροπή και αναλύσεις εξόδου 720p, 1080p και 4K. Η μορφή βίντεο εξόδου είναι MP4. Η προδιαγραφή από εικόνα δέχεται JPEG ή PNG, αναφέρει μέγιστο εικόνας εισόδου 20 MB και υποστηρίζει ρυθμίσεις εισόδου 720p/1080p. Επιλέξτε το προφίλ εξόδου για την επιθυμητή θέση και κρατήστε τη σύνθεση καρέ ευανάγνωστη σε αυτό το μέγεθος.\n\nΟ εγγενής ήχος μπορεί να συνοδεύει την ορατή σκηνή. Προσδιορίστε προφορικές φράσεις, ατμόσφαιρα και ηχητικά εφέ ως μέρη της ίδιας περιγραφής, ονομάζοντας το θέμα ή γεγονός που παράγει καθένα. Μια οδηγία διαλόγου και μια οδηγία κάμερας απαντούν σε διαφορετικά ερωτήματα: η μία καθορίζει την ερμηνεία και η άλλη πώς τη βλέπει ο θεατής. Κρατήστε τα λόγια μέσα στον χρήσιμο χρόνο ομιλίας του κλιπ και ελέγξτε τον ήχο για καταληπτότητα και σχέση με τη δράση.\n\nΓια συνέχεια, ο κατασκευαστής παρέχει χωριστή ροή επέκτασης βίντεο. Ξεκινήστε από κατάλληλο παραγόμενο αρχικό κλιπ και περιγράψτε το επόμενο ορατό γεγονός ή αλλαγή στη σκηνή. Διατηρήστε το αρχικό και το συνεχιζόμενο τμήμα, ώστε η ένωσή τους να ελεγχθεί ως προς εμφάνιση, κίνηση και ήχο. Οι συνήθεις επιλογές διάρκειας και ανάλυσης νέας δημιουργίας δεν πρέπει να αντιμετωπίζονται ως καθολική σύμβαση για κάθε λειτουργία επέκτασης.\n\nΜια αρνητική περιγραφή μπορεί να εστιάζει τις εξαιρέσεις στις οπτικές απαιτήσεις της εργασίας. Για σειρά παραλλαγών προϊόντος, κρατήστε σταθερά θέμα και σύνθεση αλλάζοντας μία δημιουργική κατεύθυνση, όπως φωτισμό ή απόσταση κάμερας. Καταγράψτε προτροπή, αναφορές και επιλεγμένες ρυθμίσεις μαζί με το αποτέλεσμα. Αυτό επιτρέπει σύγκριση χρήσιμης δημιουργικής διαφοράς αντί για συλλογή άσχετων δημιουργιών.\n\nΤο κανονικό προφίλ παραγωγής Veo 3.1 και το Veo 3.1 Fast έχουν διαφορετικά προφίλ ανάλυσης εξόδου. Το Fast αναφέρει 720p και 1080p· το κανονικό 3.1 αναφέρει επίσης 4K. Κρατήστε την επιλεγμένη έκδοση συνδεδεμένη με το αποτέλεσμα, χωρίς σιωπηρή αντικατάσταση αναγνωριστικού μοντέλου παραγωγής με παλαιότερο προφίλ Preview ή άλλη γενιά Veo. Τόσο η εμφάνιση θέματος όσο και η υποστηριζόμενη λειτουργία εξαρτώνται από την επιλεγμένη ροή.\n\nΗ δημιουργία είναι λειτουργία της οποίας το ολοκληρωμένο αποτέλεσμα παρέχει αρχεία βίντεο για αναπαραγωγή και μετέπειτα επεξεργασία. Κρατήστε τα επιστρεφόμενα αρχεία με τα αρχικά καρέ, τα στοιχεία αναφοράς και την περιγραφή τους και διατηρήστε τις παρεχόμενες πληροφορίες προέλευσης περιεχομένου. Εξετάστε κάθε πραγματική έξοδο για εμφάνιση θέματος, δράση, κάδρο, ήχο και τελική σύνθεση. Χρησιμοποιήστε το επιλεγμένο κλιπ ως δομικό στοιχείο παραγωγής, με τίτλους, μεταβάσεις ή άλλη τελική επεξεργασία να προστίθενται στο γύρω μοντάζ.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "3e39c56f442b18e4002a4f8d236e8a3c084292763e5efce82a5017f2c1aa69f0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "el",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Veo 3.1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/veo-3.1</code><button type=\"button\" id=\"copy-id\">Αντιγραφή ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Ενότητες κάρτας μοντέλου\"><button type=\"button\" data-card-jump=\"overview\">Εισαγωγή</button><button type=\"button\" data-card-jump=\"methods\">Είσοδοι και μέθοδοι</button><button type=\"button\" data-card-jump=\"pricing\">Τιμολόγηση</button><button type=\"button\" data-card-jump=\"examples\">Παραδείγματα</button><button type=\"button\" data-card-jump=\"results\">Αποτελέσματα</button><button type=\"button\" data-card-jump=\"aliases\">Εναλλακτικά ονόματα</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Μέθοδοι API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|google%2Fveo-3.1\">Βίντεο</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Το Veo 3.1 είναι το μοντέλο βίντεο της Google για σκηνές από κείμενο και εικόνα με παραγόμενο ήχο, καθοδηγούμενα ακραία καρέ και οπτικά στοιχεία αναφοράς. Το προφίλ παραγωγής του παρέχει κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 fps, με επιλογές εξόδου 720p, 1080p και 4K.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>Βίντεο</dd></div></dl><details class=\"card-about\"><summary>Σχετικά με το μοντέλο</summary><p class=\"note-s\" data-model-method-boundary>Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.</p><div class=\"mabout\" id=\"m-about\"><p>Το Veo 3.1 είναι το μοντέλο δημιουργίας βίντεο της Google για σύντομη οπτικοακουστική σκηνή από κείμενο ή περιγραφή με βάση εικόνα. Το προφίλ παραγωγής του υποστηρίζει δημιουργία από κείμενο, από εικόνα και με καθοδηγούμενα πρώτα/τελευταία καρέ, με παραγόμενο ήχο, αναφορές οπτικών στοιχείων και χωριστή ροή συνέχειας. Χρησιμοποιήστε το για ανάπτυξη κινηματογραφικής ιδέας, σύντομης αφήγησης προϊόντος ή οπτικού τμήματος με καθορισμένη σκηνή, δράση και ακουστική εμπειρία.</p><p>Περιγράψτε πρώτα το θέμα και το ορατό γεγονός. Καθορίστε το περιβάλλον, την ώρα της ημέρας και το φως και έπειτα την οπτική γωνία ή κίνηση κάμερας και το επιθυμητό οπτικό ύφος. Μια πρωτότυπη περιγραφή σκηνής θα μπορούσε να δείχνει γυάλινο δοχείο σε σκούρα επιφάνεια στούντιο, με αργή πλευρική κίνηση που αποκαλύπτει αντανάκλαση, ενώ ένας απαλός ήχος περιβάλλοντος συνοδεύει την αποκάλυψη. Κάθε οδηγία δίνει ορατό ή ακουστό χαρακτηριστικό που μπορεί να αξιολογηθεί στο ολοκληρωμένο αποτέλεσμα.</p><p>Το πλαίσιο προτροπών της Google αντιμετωπίζει θέμα, δράση, σκηνή, κάμερα και αισθητική ως χωριστά μέρη της περιγραφής. Χρησιμοποιήστε όσα υπηρετούν το πλάνο, αντί να προσθέτετε κάθε πιθανό προσδιορισμό. Γράψτε την οδηγία στα αγγλικά για το τεκμηριωμένο προφίλ προτροπών. Αν η σκηνή έχει αρκετές ενέργειες, δηλώστε τη σχέση τους και κρατήστε τες ανάλογες προς σύντομο κλιπ, ώστε μια αποκάλυψη ή αντίδραση να παραμένει ευανάγνωστη.</p><p>Μια αρχική εικόνα καθορίζει την εμφάνιση και σύνθεση της αρχής. Χρησιμοποιήστε την όταν ο χαρακτήρας, το προϊόν ή το περιβάλλον υπάρχει ήδη ως οπτικό αρχείο και περιγράψτε την κίνηση που πρέπει να εξελιχθεί από αυτό. Ένα τελευταίο καρέ προσθέτει σύνθεση στόχου για το τέλος. Προετοιμάστε ακραία καρέ που επικοινωνούν εύλογη μετάβαση και διατηρούν τις λεπτομέρειες που προσδιορίζουν το κύριο θέμα και εξετάστε κατόπιν την κίνηση μεταξύ τους μετά τη δημιουργία.</p><p>Οι αναφορές οπτικών στοιχείων υπηρετούν άλλο σκοπό: καθοδηγούν την εμφάνιση χαρακτήρα ή αντικειμένου σε νέα παραγόμενη σκηνή, ενώ τα ακραία καρέ ορίζουν συγκεκριμένες στιγμές της. Επιλέξτε αναφορές που δείχνουν τα σημαντικά οπτικά γνωρίσματα και κάντε σαφή τον ρόλο κάθε στοιχείου στην προτροπή. Η προδιαγραφή δημιουργίας βίντεο από εικόνες αναφοράς του μοντέλου παραγωγής χρησιμοποιεί έξοδο οκτώ δευτερολέπτων για αυτή τη ροή αναφορών, χωριστά από τη συνήθη επιλογή διάρκειας με βάση κείμενο.</p><p>Το συνηθισμένο προφίλ παραγωγής του κατασκευαστή δημιουργεί κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 καρέ ανά δευτερόλεπτο. Αναφέρει οριζόντιο κάδρο 16:9 και κάθετο 9:16, έως τέσσερα βίντεο εξόδου ανά προτροπή και αναλύσεις εξόδου 720p, 1080p και 4K. Η μορφή βίντεο εξόδου είναι MP4. Η προδιαγραφή από εικόνα δέχεται JPEG ή PNG, αναφέρει μέγιστο εικόνας εισόδου 20 MB και υποστηρίζει ρυθμίσεις εισόδου 720p/1080p. Επιλέξτε το προφίλ εξόδου για την επιθυμητή θέση και κρατήστε τη σύνθεση καρέ ευανάγνωστη σε αυτό το μέγεθος.</p><p>Ο εγγενής ήχος μπορεί να συνοδεύει την ορατή σκηνή. Προσδιορίστε προφορικές φράσεις, ατμόσφαιρα και ηχητικά εφέ ως μέρη της ίδιας περιγραφής, ονομάζοντας το θέμα ή γεγονός που παράγει καθένα. Μια οδηγία διαλόγου και μια οδηγία κάμερας απαντούν σε διαφορετικά ερωτήματα: η μία καθορίζει την ερμηνεία και η άλλη πώς τη βλέπει ο θεατής. Κρατήστε τα λόγια μέσα στον χρήσιμο χρόνο ομιλίας του κλιπ και ελέγξτε τον ήχο για καταληπτότητα και σχέση με τη δράση.</p><p>Για συνέχεια, ο κατασκευαστής παρέχει χωριστή ροή επέκτασης βίντεο. Ξεκινήστε από κατάλληλο παραγόμενο αρχικό κλιπ και περιγράψτε το επόμενο ορατό γεγονός ή αλλαγή στη σκηνή. Διατηρήστε το αρχικό και το συνεχιζόμενο τμήμα, ώστε η ένωσή τους να ελεγχθεί ως προς εμφάνιση, κίνηση και ήχο. Οι συνήθεις επιλογές διάρκειας και ανάλυσης νέας δημιουργίας δεν πρέπει να αντιμετωπίζονται ως καθολική σύμβαση για κάθε λειτουργία επέκτασης.</p><p>Μια αρνητική περιγραφή μπορεί να εστιάζει τις εξαιρέσεις στις οπτικές απαιτήσεις της εργασίας. Για σειρά παραλλαγών προϊόντος, κρατήστε σταθερά θέμα και σύνθεση αλλάζοντας μία δημιουργική κατεύθυνση, όπως φωτισμό ή απόσταση κάμερας. Καταγράψτε προτροπή, αναφορές και επιλεγμένες ρυθμίσεις μαζί με το αποτέλεσμα. Αυτό επιτρέπει σύγκριση χρήσιμης δημιουργικής διαφοράς αντί για συλλογή άσχετων δημιουργιών.</p><p>Το κανονικό προφίλ παραγωγής Veo 3.1 και το Veo 3.1 Fast έχουν διαφορετικά προφίλ ανάλυσης εξόδου. Το Fast αναφέρει 720p και 1080p· το κανονικό 3.1 αναφέρει επίσης 4K. Κρατήστε την επιλεγμένη έκδοση συνδεδεμένη με το αποτέλεσμα, χωρίς σιωπηρή αντικατάσταση αναγνωριστικού μοντέλου παραγωγής με παλαιότερο προφίλ Preview ή άλλη γενιά Veo. Τόσο η εμφάνιση θέματος όσο και η υποστηριζόμενη λειτουργία εξαρτώνται από την επιλεγμένη ροή.</p><p>Η δημιουργία είναι λειτουργία της οποίας το ολοκληρωμένο αποτέλεσμα παρέχει αρχεία βίντεο για αναπαραγωγή και μετέπειτα επεξεργασία. Κρατήστε τα επιστρεφόμενα αρχεία με τα αρχικά καρέ, τα στοιχεία αναφοράς και την περιγραφή τους και διατηρήστε τις παρεχόμενες πληροφορίες προέλευσης περιεχομένου. Εξετάστε κάθε πραγματική έξοδο για εμφάνιση θέματος, δράση, κάδρο, ήχο και τελική σύνθεση. Χρησιμοποιήστε το επιλεγμένο κλιπ ως δομικό στοιχείο παραγωγής, με τίτλους, μεταβάσεις ή άλλη τελική επεξεργασία να προστίθενται στο γύρω μοντάζ.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Βίντεο</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>video</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>mp4</dd></div><div><dt>Πλήθος εξόδων</dt><dd>Έως 4 έξοδοςs</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>google/veo-3.1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Μέγιστο πλήθος byte UTF-8: 10.000</div><div>Απαιτείται περιεχόμενο πέρα από κενά διαστήματα: Ναι</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>4, 6, 8</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>720p</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>16:9, 9:16</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>false, true</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο σε βίντεο</b> · Υποχρεωτικό: prompt</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, prompt, duration, resolution, aspect_ratio, generate_audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>additional_properties</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>parameters</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>{&quot;name&quot;:&quot;model&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;google/veo-3.1&quot;]}, {&quot;name&quot;:&quot;prompt&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;non_whitespace&quot;:true,&quot;max_utf8_bytes&quot;:10000}, {&quot;name&quot;:&quot;duration&quot;,&quot;type&quot;:&quot;integer&quot;,&quot;required&quot;:true,&quot;enum&quot;:[4,6,8]}, {&quot;name&quot;:&quot;resolution&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;720p&quot;]}, {&quot;name&quot;:&quot;aspect_ratio&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;16:9&quot;,&quot;9:16&quot;]}, {&quot;name&quot;:&quot;generate_audio&quot;,&quot;type&quot;:&quot;boolean&quot;,&quot;required&quot;:true,&quot;enum&quot;:[false,true]}</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/v1/videos/generations</code>, <code>/videos</code>, <code>/videos/generations</code></p><p>Κύκλος ζωής: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.</p><p class=\"note-s\">Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div class=\"card-result-process\" data-billing-basis><h5>Πώς υπολογίζεται η τελική χρέωση</h5><p class=\"note-s\">Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Εκτιμώμενες χρεώσεις για σύγκριση</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Προβλεπόμενη ποσότητα</th><th>Δημιουργία ήχου</th><th>Ανάλυση</th><th>Μονάδα τιμολόγησης</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Ultra</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>Ζητούμενες ρυθμίσεις· μόνο εκτίμηση.</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>Με ήχο</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>720p</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά δευτερόλεπτο βίντεο εξόδου</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο δευτερόλεπτο βίντεο εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>$0.8</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο εξόδου</span></div><p class=\"note-s\">Η εμφανιζόμενη τιμή εκτιμά το κόστος πριν από τη δημιουργία. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική δημιουργία. Η πραγματική διάρκεια βίντεο δεν αποτελεί τη χρεώσιμη ποσότητα.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά δευτερόλεπτο βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: with_audio; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$1.2</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Ultra</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>Ζητούμενες ρυθμίσεις· μόνο εκτίμηση.</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>Χωρίς ήχο</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>720p</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά δευτερόλεπτο βίντεο εξόδου</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο δευτερόλεπτο βίντεο εξόδου · Εκτίμηση μόνο για σύγκριση</span> <b>$0.4</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο εξόδου</span></div><p class=\"note-s\">Η εμφανιζόμενη τιμή εκτιμά το κόστος πριν από τη δημιουργία. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική δημιουργία. Η πραγματική διάρκεια βίντεο δεν αποτελεί τη χρεώσιμη ποσότητα.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>—</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά δευτερόλεπτο βίντεο</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: without_audio; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο · Εκτίμηση μόνο για σύγκριση</span> <b>$0.8</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Εκτιμώμενο κόστος δημιουργίας</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Προβλεπόμενη ποσότητα\"><span class=\"card-cell-label\">Προβλεπόμενη ποσότητα</span>εκτίμηση για μία δημιουργία</td><td data-cell-label=\"Δημιουργία ήχου\"><span class=\"card-cell-label\">Δημιουργία ήχου</span>—</td><td data-cell-label=\"Ανάλυση\"><span class=\"card-cell-label\">Ανάλυση</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση</span> <b>$1.6</b> <span class=\"price-unit\">εκτίμηση πριν από τη δημιουργία</span></div><p class=\"note-s\">Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Τιμές αναφοράς για διαμορφώσεις βίντεο</summary><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: with_audio</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.8</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: with_audio; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$1.2</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: without_audio</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.4</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Τιμή βίντεο</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>ήχος: without_audio; ανάλυση: 4k</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Έξοδος · Τιμή βίντεο</span> <b>$0.8</b> <span class=\"price-unit\">ανά δευτερόλεπτο βίντεο</span></div><p class=\"note-s\">Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1505-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1505-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · το ακριβές ρυθμισμένο προφίλ</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1505-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1505-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;google/veo-3.1&quot;, &quot;prompt&quot;: &quot;a calm greenhouse&quot;, &quot;duration&quot;: 6, &quot;resolution&quot;: &quot;720p&quot;, &quot;aspect_ratio&quot;: &quot;16:9&quot;, &quot;generate_audio&quot;: true}&#39;)\nPath(&#39;request.json&#39;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Βίντεο</h4><p class=\"note-s\">mp4</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><h5>Έλεγχος κατάστασης εργασίας</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1506-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1506-panel-0\" aria-selected=\"true\" tabindex=\"0\">Λήψη της κατάστασης της αρχικής ενέργειας με GET</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1506-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1506-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1507-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1507-panel-0\" aria-selected=\"true\" tabindex=\"0\">Αποθηκεύστε κάθε ολοκληρωμένο αποτέλεσμα που σας ανήκει</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1507-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1507-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.</p></div><p class=\"note-s\">Μέγιστο πλήθος εξόδων: 4.</p><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Σημασία</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>signed content URL</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">charge_pending_check</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>boolean</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">error.code</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">error.message</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">operation_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">error.type</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td><td data-cell-label=\"Σημασία\"><span class=\"card-cell-label\">Σημασία</span>server_error σε HTTP503 result_pending_check.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span><code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fveo-3.1&amp;route=Ultra&amp;caller=google%2Fveo-3.1&amp;fmt=videos\"><code>google/veo-3.1</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/v1/videos/generations</code>, <code>/videos</code>, <code>/videos/generations</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=google%2Fveo-3.1&amp;route=Ultra&amp;caller=google%2Fveo-3.1&amp;fmt=videos\"><code>google/veo-3.1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/veo-3.1",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "google/veo-3.1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|google%2Fveo-3.1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every completed data[] signed owned URL and the full status metadata. Save every output, including its generated audio.",
            "errors": [
              {
                "code": null,
                "condition": "Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο",
                "http_status": 409,
                "recovery": "Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error σε HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "all fields outside the exact required six-key profile",
              "image or reference inputs",
              "1080p or 4K"
            ]
          },
          "hints": [
            "Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.",
            "Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "parameters": [
              {
                "enum": [
                  "google/veo-3.1"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  4,
                  6,
                  8
                ],
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "enum": [
                  "720p"
                ],
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  false,
                  true
                ],
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "content": [
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "priced_duration": "Video-file duration is not the billing quantity; final charge follows the actual billed configuration."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": true,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.4",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.4",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "1.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/veo-3.1\", \"prompt\": \"a calm greenhouse\", \"duration\": 6, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": true}')\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · exact configured profile",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": true,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.4",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.4",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "google/veo-3.1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.8",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "1.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio_4k",
            "label": "Video price",
            "native_amount_usd_per_unit": "1.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.4",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.4",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.8",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio_4k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "google/veo-3.1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "af3c964cc580379e4fd98a6571c62e689da53cd332705aaf74c1ba868b321b2d",
    "input_html_sha256": "f019e0a96177e65264732a0c165b9263da1bd427678ea380d167272525e97524",
    "private_audit_sha256": "d142ed55eadcdfe589605f784055dfd58e6a5209e1647e8f65cb93fe43e9ce18",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/google-veo-3-1/",
    "description": "Το Veo 3.1 είναι το μοντέλο βίντεο της Google για σκηνές από κείμενο και εικόνα με παραγόμενο ήχο, καθοδηγούμενα ακραία καρέ και οπτικά στοιχεία αναφοράς. Το προφίλ παραγωγής του παρέχει κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 fps, με επιλογές εξόδου 720p, 1080p και 4K.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/google-veo-3-1/index.md",
    "title": "Google: Veo 3.1 — Ailoot",
    "url": "https://ailoot.ai/models/el/google-veo-3-1/"
  },
  "rawModel": {
    "about": "Το Veo 3.1 είναι το μοντέλο δημιουργίας βίντεο της Google για σύντομη οπτικοακουστική σκηνή από κείμενο ή περιγραφή με βάση εικόνα. Το προφίλ παραγωγής του υποστηρίζει δημιουργία από κείμενο, από εικόνα και με καθοδηγούμενα πρώτα/τελευταία καρέ, με παραγόμενο ήχο, αναφορές οπτικών στοιχείων και χωριστή ροή συνέχειας. Χρησιμοποιήστε το για ανάπτυξη κινηματογραφικής ιδέας, σύντομης αφήγησης προϊόντος ή οπτικού τμήματος με καθορισμένη σκηνή, δράση και ακουστική εμπειρία.\n\nΠεριγράψτε πρώτα το θέμα και το ορατό γεγονός. Καθορίστε το περιβάλλον, την ώρα της ημέρας και το φως και έπειτα την οπτική γωνία ή κίνηση κάμερας και το επιθυμητό οπτικό ύφος. Μια πρωτότυπη περιγραφή σκηνής θα μπορούσε να δείχνει γυάλινο δοχείο σε σκούρα επιφάνεια στούντιο, με αργή πλευρική κίνηση που αποκαλύπτει αντανάκλαση, ενώ ένας απαλός ήχος περιβάλλοντος συνοδεύει την αποκάλυψη. Κάθε οδηγία δίνει ορατό ή ακουστό χαρακτηριστικό που μπορεί να αξιολογηθεί στο ολοκληρωμένο αποτέλεσμα.\n\nΤο πλαίσιο προτροπών της Google αντιμετωπίζει θέμα, δράση, σκηνή, κάμερα και αισθητική ως χωριστά μέρη της περιγραφής. Χρησιμοποιήστε όσα υπηρετούν το πλάνο, αντί να προσθέτετε κάθε πιθανό προσδιορισμό. Γράψτε την οδηγία στα αγγλικά για το τεκμηριωμένο προφίλ προτροπών. Αν η σκηνή έχει αρκετές ενέργειες, δηλώστε τη σχέση τους και κρατήστε τες ανάλογες προς σύντομο κλιπ, ώστε μια αποκάλυψη ή αντίδραση να παραμένει ευανάγνωστη.\n\nΜια αρχική εικόνα καθορίζει την εμφάνιση και σύνθεση της αρχής. Χρησιμοποιήστε την όταν ο χαρακτήρας, το προϊόν ή το περιβάλλον υπάρχει ήδη ως οπτικό αρχείο και περιγράψτε την κίνηση που πρέπει να εξελιχθεί από αυτό. Ένα τελευταίο καρέ προσθέτει σύνθεση στόχου για το τέλος. Προετοιμάστε ακραία καρέ που επικοινωνούν εύλογη μετάβαση και διατηρούν τις λεπτομέρειες που προσδιορίζουν το κύριο θέμα και εξετάστε κατόπιν την κίνηση μεταξύ τους μετά τη δημιουργία.\n\nΟι αναφορές οπτικών στοιχείων υπηρετούν άλλο σκοπό: καθοδηγούν την εμφάνιση χαρακτήρα ή αντικειμένου σε νέα παραγόμενη σκηνή, ενώ τα ακραία καρέ ορίζουν συγκεκριμένες στιγμές της. Επιλέξτε αναφορές που δείχνουν τα σημαντικά οπτικά γνωρίσματα και κάντε σαφή τον ρόλο κάθε στοιχείου στην προτροπή. Η προδιαγραφή δημιουργίας βίντεο από εικόνες αναφοράς του μοντέλου παραγωγής χρησιμοποιεί έξοδο οκτώ δευτερολέπτων για αυτή τη ροή αναφορών, χωριστά από τη συνήθη επιλογή διάρκειας με βάση κείμενο.\n\nΤο συνηθισμένο προφίλ παραγωγής του κατασκευαστή δημιουργεί κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 καρέ ανά δευτερόλεπτο. Αναφέρει οριζόντιο κάδρο 16:9 και κάθετο 9:16, έως τέσσερα βίντεο εξόδου ανά προτροπή και αναλύσεις εξόδου 720p, 1080p και 4K. Η μορφή βίντεο εξόδου είναι MP4. Η προδιαγραφή από εικόνα δέχεται JPEG ή PNG, αναφέρει μέγιστο εικόνας εισόδου 20 MB και υποστηρίζει ρυθμίσεις εισόδου 720p/1080p. Επιλέξτε το προφίλ εξόδου για την επιθυμητή θέση και κρατήστε τη σύνθεση καρέ ευανάγνωστη σε αυτό το μέγεθος.\n\nΟ εγγενής ήχος μπορεί να συνοδεύει την ορατή σκηνή. Προσδιορίστε προφορικές φράσεις, ατμόσφαιρα και ηχητικά εφέ ως μέρη της ίδιας περιγραφής, ονομάζοντας το θέμα ή γεγονός που παράγει καθένα. Μια οδηγία διαλόγου και μια οδηγία κάμερας απαντούν σε διαφορετικά ερωτήματα: η μία καθορίζει την ερμηνεία και η άλλη πώς τη βλέπει ο θεατής. Κρατήστε τα λόγια μέσα στον χρήσιμο χρόνο ομιλίας του κλιπ και ελέγξτε τον ήχο για καταληπτότητα και σχέση με τη δράση.\n\nΓια συνέχεια, ο κατασκευαστής παρέχει χωριστή ροή επέκτασης βίντεο. Ξεκινήστε από κατάλληλο παραγόμενο αρχικό κλιπ και περιγράψτε το επόμενο ορατό γεγονός ή αλλαγή στη σκηνή. Διατηρήστε το αρχικό και το συνεχιζόμενο τμήμα, ώστε η ένωσή τους να ελεγχθεί ως προς εμφάνιση, κίνηση και ήχο. Οι συνήθεις επιλογές διάρκειας και ανάλυσης νέας δημιουργίας δεν πρέπει να αντιμετωπίζονται ως καθολική σύμβαση για κάθε λειτουργία επέκτασης.\n\nΜια αρνητική περιγραφή μπορεί να εστιάζει τις εξαιρέσεις στις οπτικές απαιτήσεις της εργασίας. Για σειρά παραλλαγών προϊόντος, κρατήστε σταθερά θέμα και σύνθεση αλλάζοντας μία δημιουργική κατεύθυνση, όπως φωτισμό ή απόσταση κάμερας. Καταγράψτε προτροπή, αναφορές και επιλεγμένες ρυθμίσεις μαζί με το αποτέλεσμα. Αυτό επιτρέπει σύγκριση χρήσιμης δημιουργικής διαφοράς αντί για συλλογή άσχετων δημιουργιών.\n\nΤο κανονικό προφίλ παραγωγής Veo 3.1 και το Veo 3.1 Fast έχουν διαφορετικά προφίλ ανάλυσης εξόδου. Το Fast αναφέρει 720p και 1080p· το κανονικό 3.1 αναφέρει επίσης 4K. Κρατήστε την επιλεγμένη έκδοση συνδεδεμένη με το αποτέλεσμα, χωρίς σιωπηρή αντικατάσταση αναγνωριστικού μοντέλου παραγωγής με παλαιότερο προφίλ Preview ή άλλη γενιά Veo. Τόσο η εμφάνιση θέματος όσο και η υποστηριζόμενη λειτουργία εξαρτώνται από την επιλεγμένη ροή.\n\nΗ δημιουργία είναι λειτουργία της οποίας το ολοκληρωμένο αποτέλεσμα παρέχει αρχεία βίντεο για αναπαραγωγή και μετέπειτα επεξεργασία. Κρατήστε τα επιστρεφόμενα αρχεία με τα αρχικά καρέ, τα στοιχεία αναφοράς και την περιγραφή τους και διατηρήστε τις παρεχόμενες πληροφορίες προέλευσης περιεχομένου. Εξετάστε κάθε πραγματική έξοδο για εμφάνιση θέματος, δράση, κάδρο, ήχο και τελική σύνθεση. Χρησιμοποιήστε το επιλεγμένο κλιπ ως δομικό στοιχείο παραγωγής, με τίτλους, μεταβάσεις ή άλλη τελική επεξεργασία να προστίθενται στο γύρω μοντάζ.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/veo-3.1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "5c12291f0ed9f66144eb670a",
        "label": "Τιμές αναφοράς για διαμορφώσεις βίντεο",
        "profiles": [
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "ήχος: with_audio"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "ήχος: with_audio; ανάλυση: 4k"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "1.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "ήχος: without_audio"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.4",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Δημοσιευμένη αναφορά τιμής για την εμφανιζόμενη διαμόρφωση. Οι τελικές χρεώσεις ακολουθούν την πραγματική διαμόρφωση που χρεώθηκε.",
            "dimensions": {
              "conditions": "ήχος: without_audio; ανάλυση: 4k"
            },
            "label": "Τιμή βίντεο",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "google/veo-3.1",
    "input": [
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every completed data[] signed owned URL and the full status metadata. Save every output, including its generated audio.",
            "errors": [
              {
                "code": null,
                "condition": "Η ανάγνωση του ακατέργαστου σώματος αιτήματος αποτυγχάνει πριν από την ανάλυση του προφίλ βίντεο",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση που επιστρέφεται και διορθώστε το μη αναγνώσιμο σώμα αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Αποτυγχάνει η ανάλυση του ακριβούς προφίλ βίντεο ή το πλήρες αναλυμένο προφίλ δεν διαθέτει έτοιμη κάρτα με την ακριβή τιμή",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε το πλήρες, ακριβές προφίλ που έχει άδεια πρόσβασης και τη δημοσιευμένη κάρτα του. Αυτός ο κλάδος εκτελείται πριν από αποστολή στον πάροχο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο",
                "http_status": 409,
                "recovery": "Ελέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET αρχικής κατάστασης ή περιεχομένου: η εργασία δεν έχει δημοσιευτεί, η αρχική εργασία δεν είναι failed/cancelled/expired και η τοπική κατάσταση είναι unknown ή η κατάσταση της αρχικής εργασίας είναι completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "Διατηρήστε τα αρχικά id και operation_id (το ίδιο δημόσιο ID βίντεο), την απόκριση και τις κεφαλίδες· διαβάστε μόνο την αρχική κατάσταση ή περιεχόμενο. Μην υποβάλετε ποτέ νέο αίτημα δημιουργίας.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε ολοκληρωμένο υπογεγραμμένο URL του data[] που σας ανήκει και όλα τα μεταδεδομένα κατάστασης. Αποθηκεύστε κάθε έξοδο, μαζί με τον παραγόμενο ήχο της. Έγκυρο ηχητικό κομμάτι AAC μπορεί να υπάρχει ακόμη και με generate_audio=false· διατηρήστε ολόκληρο το αρχικό MP4 μαζί με αυτόν τον ήχο.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "Αρχική απόκριση κατάστασης ή περιεχομένου HTTP503 result_pending_check: το ίδιο αρχικό δημόσιο ID βίντεο ως id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error σε HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "all fields outside the exact required six-key profile",
              "image or reference inputs",
              "1080p or 4K"
            ]
          },
          "hints": [
            "Διατηρήστε ολόκληρη την απόκριση και τα αρχικά ID που επιστρέφονται.",
            "Μην επανυποβάλετε ποτέ αίτημα δημιουργίας με άγνωστο αποτέλεσμα."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "parameters": [
              {
                "enum": [
                  "google/veo-3.1"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_utf8_bytes": 10000,
                "name": "prompt",
                "non_whitespace": true,
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  4,
                  6,
                  8
                ],
                "name": "duration",
                "required": true,
                "type": "integer"
              },
              {
                "enum": [
                  "720p"
                ],
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  false,
                  true
                ],
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              }
            ],
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "content": [
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "parameters": [
                  {
                    "availability": "source_interface",
                    "conditions": "Must be less than the actual returned output count.",
                    "default": 0,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": null,
                    "maximum_known": false,
                    "minimum": 0,
                    "name": "index",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "priced_duration": "Video-file duration is not the billing quantity; final charge follows the actual billed configuration."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": true,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.4",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.4",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Εκτιμώμενο κόστος δημιουργίας",
            "units": [
              {
                "amount": "1.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/veo-3.1\", \"prompt\": \"a calm greenhouse\", \"duration\": 6, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": true}')\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · exact configured profile",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": true,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.4",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.4",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio; resolution: 4k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.8",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_4k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.8",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "google/veo-3.1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.8",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "1.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio_4k",
            "label": "Video price",
            "native_amount_usd_per_unit": "1.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.4",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.4",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.8",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio_4k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/veo-3.1",
        "request_model_id": "google/veo-3.1",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Veo 3.1",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.6,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.6,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": true,
          "native_model_id": "veo-3.1-generate-preview",
          "resolution": "720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.80",
            "amount_unit": "usd_per_output_second",
            "conditions": {
              "audio": true,
              "native_model_id": "veo-3.1-generate-preview",
              "resolution": "720p"
            },
            "key": "output_video_audio",
            "label": "output video audio",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": true,
          "native_model_id": "veo-3.1-generate-preview",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.80",
            "amount_unit": "usd_per_output_second",
            "conditions": {
              "audio": true,
              "native_model_id": "veo-3.1-generate-preview",
              "resolution": "1080p"
            },
            "key": "output_video_audio",
            "label": "output video audio",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": true,
          "native_model_id": "veo-3.1-generate-preview",
          "resolution": "4k"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.20",
            "amount_unit": "usd_per_output_second",
            "conditions": {
              "audio": true,
              "native_model_id": "veo-3.1-generate-preview",
              "resolution": "4k"
            },
            "key": "output_video_audio",
            "label": "output video audio",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.8",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=true",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.80",
            "key": "duration_seconds_with_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "1.2",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=4k · audio=true Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "1.20",
            "key": "duration_seconds_with_audio_4k",
            "label": "output second",
            "native_amount_usd_per_unit": "1.2",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.4",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.40",
            "key": "duration_seconds_without_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.4",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.8",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=4k · audio=false Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.80",
            "key": "duration_seconds_without_audio_4k",
            "label": "output second",
            "native_amount_usd_per_unit": "0.8",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "google/veo-3.1",
    "short": "Το Veo 3.1 είναι το μοντέλο βίντεο της Google για σκηνές από κείμενο και εικόνα με παραγόμενο ήχο, καθοδηγούμενα ακραία καρέ και οπτικά στοιχεία αναφοράς. Το προφίλ παραγωγής του παρέχει κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 fps, με επιλογές εξόδου 720p, 1080p και 4K."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το Veo 3.1 είναι το μοντέλο βίντεο της Google για σκηνές από κείμενο και εικόνα με παραγόμενο ήχο, καθοδηγούμενα ακραία καρέ και οπτικά στοιχεία αναφοράς. Το προφίλ παραγωγής του παρέχει κλιπ τεσσάρων, έξι ή οκτώ δευτερολέπτων στα 24 fps, με επιλογές εξόδου 720p, 1080p και 4K.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9ff3257f7e907a9154f1c1a8d53dae9edfd1ef8f31c1b65c4dc910529904d886",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "bbb7b3ecb8f997327e96bbe13fbd5cb8562fc968c23eb6f530b5a35497b080a2"
}
