Create a Post with YouTube Video in Lead Media

This tutorial explains how to create an article with a YouTube video in lead media spot.

Requirements

For this tutorial you will need both the Python and requests libraries installed.

Procedure

1. Initialize variables

Set the global variables.

import requests
API_DOMAIN = '<your-secure-domain>'
API_KEY = '<your-api-key>'

2. Obtain a shortcode using a YouTube video URL

This code snippet uses the Scraper API to obtain a shortcode and URL that can be embedded.

youtube_video_url = 'https://www.youtube.com/watch?v=_KcjSQ0gjFs'
response = requests.get(
    'https://{}/api/1.3/scraper'.format(API_DOMAIN),
    params={
        'api_key': API_KEY,
        'url': youtube_video_url,
    }
)
response.raise_for_status()
scraper_response = response.json()
print(scraper_response['embed']['shortcode'])
print(scraper_response['videos'][0]['embed_url'])

3. Create a draft

Once you have the shortcode and URL to be embedded, create a new draft using the Drafts API with the video in the lead media position.

response = requests.post(
     'https://{}/api/1.3/drafts'.format(API_DOMAIN),
    params={'api_key': API_KEY},
    json={
        'headline': 'Article with YouTube video in lead media',
        'body': '<p>This is a HTML piece.</p>',
        'media': scraper_response['embed']['shortcode'],
        'video': scraper_response['videos'][0]['embed_url'],
        'image_external': scraper_response['videos'][0]['thumbnail_url'],
    }
)
response.raise_for_status()
draft_api_response = response.json()
print(draft_api_response['id'])

4. Publish the draft

Finally, publish the draft and print its URL.

response = requests.put(
    'https://{}/api/1.3/drafts/{}'.format(API_DOMAIN, draft_api_response['id']),
    params={'api_key': API_KEY},
    json={'action': 'publish'}
)
response.raise_for_status()
draft_api_response = response.json()
print(draft_api_response['post_url'])