The bulk upload allows you to import multiple metadata and content in your OKAST platform at once. 

To do that you need to provide a .JSON format that follows the structure hereafter.

Objects defined are common for all your projects within your organization.

Objects Structure

For simplicity, the unicity of object and dependency between objects are made using object’s LABEL or key as a unique key.

  • LANGUAGE SUPPORT
    • Each import file is having a default language defined globally for all objects: “default_language”
    • Each object has several language support (for name, description, biography… but not label which is unique) via translations with ALPHA2 country code (check https://www.iban.com/country-codes):
"translations" :
[
  {
    "language": "fr",
    // LIST OF PARAMETERS FOR THIS OBJECT
  },
  {
    "language": "en",
    // LIST OF PARAMETERS FOR THIS OBJECT
  }
]
  • PICTURES
    • Objects can support up 4 pictures size per translation. Each file is expected to be available on S3 bucket. Support format: jpeg / png
"pictures": 
  {
   "16_6_s3_location": "s3://my_bucket_url/my_picture_16_6.jpg",
   "16_9_s3_location": "s3://my_bucket_url//my_picture_16_9.jpg",
   "4_3_s3_location": "s3://my_bucket_url//my_picture_4_3.jpg",
   "1_1_s3_location": "s3://my_bucket_url//my_picture_1_1.jpg" 
}
  • COPYRIGHT
    • key : text (255)
  • CASTING
    • label: text (255)
    • name: text (255)
    • biography (optional): markdown (2046)
    • pictures (optional): 1_1
  • MEDIA
    • label: text (255)
    • media_S3_location (optional): path on S3 bucket
    • type: audio / video
    • storage : hosted / live
    • geoblock_mode (optional): disabled, allow, deny
    • media_countries (for geoblock – optional): array of ALPHA2 country code 
    • temporal_restriction (optional)
      • begin_date: yyyy-mm-dd hh:mm:ss
      • end_date:  yyyy-mm-dd hh:mm:ss
    • duration (in seconds – optional) : integer
    • isan_code (optional): ISAN 0000-0001-8947-0000-8-0000-0000-D
    • isrc_code (optional): ISRC FR-Z11-92-20350
    • eidr_code (optional): 10.5240/3202-A3F9-0937-E9DC-7B21-9
    • custom_id (optional): text (255)
    • production_date (optional): yyyy-mm-dd
    • publication_date (optional): yyyy-mm-dd
    • copyright: text (255) // must match existing copyright key
    • title: text (255)
    • description (optional): markdown (2046) 
    • short_description (optional): markdown (2046)
    • pictures (optional) : 1_1, 16_9, 16_6, 3_4
    • media_castings (optional): array of type casting label // must match existing casting label
      • type // actor, director, author, producer
    • genre (optional): text from this list, warning: case sensitive
      • action, advanced, music, men, show, tutorial, 2t, science, natural, other, polonaise, documentary, intermediate, society, animation, 3t, human, sport, mazurka, horror, discovery, history, arts, adventure, culture, waltz, comedy, baby, film, 6t, scienceFiction, affairs, drame, performance, 4t, coda, ragtime, interview, thriller, beginner, adult
    • category (optional): text from this list, warning: case sensitive
      • techsolution, ballet, dancejazz, class, repertoire, series, barre, hiphop, film, collection, character, music, bonus, shortProgram, trailer, contemporary, others, project
    • keywords (optional): text array (255)
  • S3 CREDENTIALS (OPTIONAL):
    • s3_credentials
    • s3_access_key
    • s3_secret_key
    • s3_bucket_url
    • s3_bucket_region: as defined per AWS

Example

 {
  "default_language": "FR",
  "castings": [
    {
      "label": "John Doe",
      "translations" : [
        {
          "language": "fr",
          "name": "John Doe",
          "biography": "Personne inconnue"
        },
        {
          "language": "en",
          "name": "John Doe",
          "biography": "unknown person",
          "pictures": {
             "1_1_s3_location": "s3://my_bucket_url/johndoe_1_1.jpg"
          }
        }
      ]
    },
    {
      "label": "Mickey",
      "translations" : [
        {
          "language": "fr",
          "name": "Mickey",
          "biography": "Une souris célèbre"
        }
      ]
    }
  ],
  "copyright": [
    {
      "key": "OKAST"
    }
  ],
  "medias": [
    {
      "label": "Great movie",
      "media_s3_location": "s3://my_bucket_url/my_great_movie.mp4",
      "type": "video",
      "storage": "hosted",
      "geoblock_mode": "allow",
      "media_countries": ["FR", "GB"],
      "temporal_restriction": {
        "begin_date": "2018-01-23 00:00:00",
        "end_date": "2018-01-25 00:00:00"
      },
      "duration": 900,
      "isan_code": "ISAN 0000-0001-8947-0000-8-0000-0000-D",
      "isrc_code": "ISRC FR-Z11-92-20350",
      "eidr_code": "10.5240/3202-A3F9-0937-E9DC-7B21-9",
      "custom_id": "xxxx",
      "production_date": "2042-01-01",
      "publication_date": "2042-01-01",
      "copyright": "OKAST",
      "translations": [
        {
          "language": "fr",
          "title": "Un grand film",
          "description": "Un grand film avec de grands acteurs",
          "short_description": "Un grand film",
          "pictures": {
            "16_6_s3_location": "s3://my_bucket_url/my_great_movie_16_6.jpg",
            "16_9_s3_location": "s3://my_bucket_url/my_great_movie_16_9.jpg",
            "4_3_s3_location": "s3://my_bucket_url/my_great_movie_4_3.jpg",
            "1_1_s3_location": "s3://my_bucket_url/my_great_movie_1_1.jpg"
          }
        },
        {
          "language": "en",
          "title": "A great movie",
          "description": "A great movie with great actors",
          "short_description": "A great movie"
        }
      ],
      "media_castings" : {
        "actor": [
          "John Doe",
          "Mickey"
        ],
        "director": [
          "John Doe"
        ],
        "producer": [
          "John Doe"
        ],
        "author": [
          "Mickey"
        ]
      },
      "genre": "action",
      "category": "series",
      "keywords": ["pop", "yoga", "animation"]
    }
  ],
  "s3_credentials": {
    "s3_access_key": "lksjdfkljqslkdjlksqjd",
    "s3_secret_key": "lkjhdfkjhfksjfsd",
    "s3_bucket_url": "s3://my_bucket_url",
    "s3_bucket_region": "eu-west-3"
  }
}

CURRENT LIMITATIONS:

  • subtitles are not available;
  • mp3 audio files must not contain a cover, otherwise, the encoding won’t start;
  • maximum 25 Contents can be ingested per imported JSON file, if a file includes more than that then import is cancelled.
  • multi audio tracks not available.

How to upload in bulk from the Editor

Go to Content Management menu > Imports (if you don’t see the menu on your back office, ask your sales representative).

Then click on the button “Create a new import” :

 

Once you have your .JSON file ready (as explained above) click on “Upload a JSON file” :

First the file will be parsed and the system will calculate how many contents and/or credits are detected.

 

 

If there is any error, the system will show where if you click on the button “Details” :

 

Once your file is ready to ingest, just click on “Start Ingest” and the import will start: content and credits will be created and added automatically on your platform.  You can download a report (a CSV file) to have more info via the “Download Report” button.

Error Management

Duplicates:  If your JSON file includes Contents or Credits already ingested in your catalog (detection is based on the filed “Label”) then it will be ignored during the ingestion process.

For any questions, please contact us at hello@okast.tv