Syndication Publishing API

The Syndication Publishing API, which is a versioned API, administers publishing target configurations and schedules, validates stream URLs, and starts/stops publishing to a social media or content distribution platform.

It supports the following endpoints:

Endpoint Description

Create Publishing Schedule

POST /syndication-schedule

Creates a publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Create Publishing Target

POST /syndication-target

Creates a publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform. configuration.

Delete Publishing Schedule

DELETE /syndication-schedule/Publishing Schedule ID

Deletes a publishing schedule.

Delete Publishing Target

DELETE /syndication-target/Publishing Target ID

Deletes a publishing target configuration.

Get All Publishing Locations

GET /syndication-regions

Retrieves a list of locations to which you may publish.

Get Multiple Publishing Jobs

GET /syndication-jobs

Retrieves all publishing jobs.

Get Multiple Publishing Schedules

GET /syndication-schedule

Retrieves all publishing schedules.

Get Multiple Publishing Targets

GET /syndication-target

Retrieves all publishing targets.

Get Publishing Schedule

GET /syndication-schedule/Publishing Schedule ID

Retrieves the configuration for a publishing schedule.

Get Publishing Target

GET /syndication-target/Publishing Target ID

Retrieves the configuration for a specific publishing target.

Get Syndication Publishing-Compatible Clipping Profiles

GET /syndication-clipping-profiles?service=Platform

Retrieves all Facebook or YouTube Clipping profiles.

Get Rays

GET /syndication-ray-details/Publishing Schedule ID

Retrieves encoding information for the rays associated with a specific publishing schedule.

Start / Stop Publishing

PATCH /syndication-schedule-action/Publishing Schedule ID

Start or stop publishing to a social media or content distribution platform.

Update Publishing Schedule

PATCH /syndication-schedule/Publishing Schedule ID

Updates a publishing schedule.

Update Publishing Target

PATCH /syndication-target/Publishing Target ID

Updates a publishing target configuration.

Validate Stream URL

PATCH /syndication-target-test/Publishing Target ID

Validates that our service can connect to a social media or content distribution platform using the stream URL associated with a specific publishing target.

Base URL

Use the following base URL:

https://services.uplynk.com/api/v4

Create Publishing Schedule

Creates a publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

POST /syndication-schedule

Request body parameters:

Pass the following request body parameters:

Name

Data Type

Description

content_id

Required

String

Identifies a live channel or live event by its system-defined ID.

content_type

Required

String

Determines whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

region

String

Identifies a publishing location by its system-defined ID. A publishing location determines where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. Set this property to an empty string to use the default output location.

Use the Get All Publishing Locations endpoint to retrieve a list of regions and their system-defined IDs.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Determines whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

source_url_params

Dictionary

Define a key-value pair for each desired query string parameter. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

Example:

'source_url_params': {
	'delay': '20',
	'ad': 'sportcreatives'
}	

syndication_target_id

Required

String

Identifies a publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform. by its system-defined ID.

Use the Get Multiple Publishing Targets endpoint to retrieve a list of publishing targets and their system-defined IDs.

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's setting.

url_params_active

Boolean

Determines whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Determines the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings through the following properties:

Name

Data Type

Description

integrated_description

String

Facebook or YouTube (Integrated Authentication)

Determines the video's description.

integrated_title

String

Facebook or YouTube (Integrated Authentication)

Determines the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Determines whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Sets the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing schedule.

@type

String

Returns SyndicationSchedule.

audio_track

String

Indicates the name of the audio track that will be published.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

err_msg

String

Indicates the publishing schedule's last error message. The system generates an error message whenever the publishing schedule's status is set to error.

id

String

Indicates the system-defined ID for the publishing schedule.

last_status

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule's status was last updated.

region

String

Indicates the location where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. An empty string identifies the default output location.

region_auto_selected

Boolean

Indicates whether this publishing schedule's publishing location is set to auto selected.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Indicates whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

source_url_params

Dictionary

Contains key-value pairs for query string parameters. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

 

start

Integer

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule was last started.

status

String

Indicates the publishing schedule's status. Valid values are:

active | stopping | stopped | scheduled | error

stop

Integer

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing schedule entered the stopped state.

syndication_target_description

String

Indicates the description for the publishing target.

syndication_target_id

String

Indicates the system-defined ID for the publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's settings.

type

String

Returns downloader.

url_params_active

Boolean

Indicates whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following properties:

Name

Data Type

Description

broadcast_id

String

Reserved for internal use.

channel_id_pristine

String

Reserved for internal use.

hls_master_url

String

HLS (Pull) Only

Indicates the URL to which our service will push a HLS stream once you start publishing to this target. You will need to configure the desired social media or content distribution platform to pull the stream using this URL.

integrated

Boolean

Reserved for future use.

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Indicates whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Indicates the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

stream_id

String

Reserved for internal use.

Sample Request/Response

Call the create_publishing_schedule module (Python 3) to create a publishing schedule. This module imports names from the api_auth module.

import json
import requests
from api_auth import APICredentials, APIParams
  
class PublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._create_publishing_schedule()
 
    def _create_publishing_schedule(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-schedule")
 
        publishing_target_id = 'd30f655670cb426c98cd28afb6291bf4'
        content_type = 'c'
        content_id = '1df8d13992cd4222a7343b8fafd89cd7'
         
        payload = {
            'syndication_target_id': publishing_target_id,
            'video_quality': 'medium',
            'content_id': content_id,
            'content_type': content_type
        }
 
        headers = {'Content-Type': 'application/json'}
 
        response = requests.post(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
 
        print(response.json())
  
PublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule/e8d6b5cb940c40cc9ec6ad081a38f3f0",
	"@type": "SyndicationSchedule",
	"id": "e8d6b5cb940c40cc9ec6ad081a38f3f0",
	"start": "",
	"stop": "",
	"syndication_target_id": "d30f655670cb426c98cd28afb6291bf4",
	"status": "scheduled",
	"last_status": "",
	"err_msg": "",
	"type": "downloader",
	"video_quality": "medium",
	"audio_track": "en",
	"content_id": "1df8d13992cd4222a7343b8fafd89cd7",
	"content_type": "c",
	"syndication_target_description": "My Publishing Schedule"
} 

Create Publishing Target

Creates a publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform. configuration.

Request

Request syntax:

POST /syndication-target

Request body parameters:

Pass the following request body parameters:

Name

Data Type

Description

description

String

Defines a description for the social media or content distribution platform.

platform

Required

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

target_protocol

Required

String

Determines the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

Key information:

  • AWS Elemental MediaConnect or Pluto TV: Set this parameter to zixi.
  • Facebook, YouTube, TikTok, or Twitch: Set this parameter to rtmp.

target_stream

Required

String

Required for Facebook (stream key), TikTok, Twitch, YouTube (stream key), and Custom (RTMP, RTMPS, HLS - Push, SRT - Push, and RIST - Push)

Identifies the stream to which your content will be published. This parameter's configuration varies by platform.

  • Facebook, TikTok, Twitch, and YouTube

    Set this parameter to the desired stream key.

    If you are publishing to Facebook and the integrated parameter is set to true, then your live stream will be published according to the page_id parameter instead.

    If you are publishing to YouTube and the integrated parameter is set to true, then your live stream will be published to a YouTube Studio dashboard instead.

    Please refer to the documentation provided by the desired social media or content distribution platform to learn where to find your stream key(s).

  • Custom (RTMP, RTMPS, HLS - Push, SRT - Push, and RIST - Push)

    Set this parameter to the desired stream URL.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Identifies the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Determines how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

Default value: 

false

page_id

Required

String

Facebook Only: Required when the integrated property is set to true.

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the password of the stream to which your content will be published.

port

Required

Integer

Identifies the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Determines whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

Default value: 

false

stream_id

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the ID of the stream to which your content will be published.

type

String

Set to push.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns the new publishing target configuration.

@type

String

Returns SyndicationTarget.

items

List of dictionaries

Contains a list of publishing targets.

total_items

Integer

Returns 1.

items List

The items list describes each publishing target via the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing target.

@type

String

Returns SyndicationTarget.

description

String

Indicates a description for the social media or content distribution platform.

id

String

Identifies this publishing target by its system-defined ID.

platform

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

status

String

Indicates the publishing target's status. Valid values are:

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

target_stream

String

Returns ******. This value represents either a stream URL or a stream key when the integrated parameter is set to false.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Indicates the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Indicates the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Indicates how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

page_id

String

Facebook Only

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the password of the stream to which your content will be published.

port

Integer

Indicates the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Indicates whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

remote_id

String

Reserved for future use.

stream_id

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the ID of the stream to which your content will be published.

type

String

Returns push.

Sample Request/Response

Call the create_publishing_target module (Python 3) to create a publishing target configuration. This module imports names from the api_auth module.

import json
import requests
from api_auth import APICredentials, APIParams
  
class PublishingTarget:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._create_publishing_target()
  
    def _create_publishing_target(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-target")
 
        payload = {
            'target_stream': 'rtmp://platform.example.com/live/3u40-9rqs-502b-7zeq',
            'platform': 'Facebook',
            'description': 'Facebook publishing',
            'target_protocol': 'rtmp'
        }
  
        headers = {'Content-Type': 'application/json'}
  
        response = requests.post(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
  
        print(response.json())
  
PublishingTarget().run()

Response:

{
	"@id": "/api/v4/syndication-target/587be125932f4428b83e4435e41503b7",
	"@type": "Collection",
	"items": [{
			"@id": "/api/v4/syndication-target/587be125932f4428b83e4435e41503b7",
			"@type": "SyndicationTarget",
			"id": "587be125932f4428b83e4435e41503b7",
			"platform": "Facebook",
			"description": "Facebook publishing",
			"target_protocol": "rtmp",
			"target_stream": "rtmp://platform.example.com/live/3u40-9rqs-502b-7zeq",
			"status": "stopped"
		}
	],
	"total_items": 1
}

Delete Publishing Schedule

Deletes a publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

DELETE /syndication-target/Publishing Schedule ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Schedule ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing schedule.

Use the Get Multiple Publishing Schedules endpoint to retrieve a list of publishing schedules and their system-defined ID.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that previously returned this publishing schedule.

@type

String

Returns SyndicationSchedule.

id

String

Returns Deleted upon successfully deleting the publishing schedule.

Sample Request/Response

Call the delete_publishing_schedule module (Python 3) to delete a publishing schedule. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._delete_publishing_schedule()
  
    def _delete_publishing_schedule(self):
        publishing_schedule_id = '587be125932f4428b83e4435e41503b7'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-schedule/", publishing_schedule_id)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.delete(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule/4ebd413a120a428eba0adcd98df94927",
	"@type": "SyndicationSchedule",
	"message": "Deleted"
} 

Delete Publishing Target

Deletes a publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform. configuration.

Request

Request syntax:

DELETE /syndication-target/Publishing Target ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Target ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing target configuration.

Use the Get Multiple Publishing Targets endpoint to retrieve a list of publishing targets and their system-defined ID.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that previously returned this publishing target.

@type

String

Returns SyndicationTarget.

message

String

Returns Deleted upon successfully deleting the publishing target.

Sample Request/Response

Call the delete_publishing_target module (Python 3) to delete a publishing target configuration. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingTarget:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._delete_publishing_target()
  
    def _delete_publishing_target(self):
        publishing_target_id = '587be125932f4428b83e4435e41503b7'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-target/", publishing_target_id)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.delete(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingTarget().run()

Response:

{
	"@id": "/api/v4/syndication-target/4ebd413a120a428eba0adcd98df94927",
	"@type": "SyndicationTarget",
	"message": "Deleted"
} 

Get All Publishing Locations

Retrieves all publishing locations.

Request

Request syntax:

GET /syndication-regions

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the requested endpoint.

@type

String

Returns Collection.

items

List of dictionaries

Contains a list of publishing locations.

total_items

Integer

Indicates the total number of publishing locations.

items List

The items list describes each publishing location via the following properties:

Name

Data Type

Description

id

String

Identifies this publishing location by its system-defined ID.

name

String

Identifies this publishing location by its name.

Sample Request/Response

Call the get_all_publishing_locations module (Python 3) to retrieve all publishing locations. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingLocation:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._get_publishing_locations()
  
    def _get_publishing_locations(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-regions")
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingLocation().run()

Response:

{
	'@id': '/api/v4/syndication-regions',
	'@type': 'Collection',
	'items': [{
			'id': 'us-east-1',
			'name': 'AWS - USA - East - N. Virginia'
		}, {
			'id': 'us-east-2',
			'name': 'AWS - USA - East - Ohio'
		}, {
			'id': 'us-west-2',
			'name': 'AWS - USA - West - Oregon'
		}, {
			'id': 'sa-east-1',
			'name': 'AWS - South America - East - Sao Paulo'
		}, {
			'id': 'eu-central-1',
			'name': 'AWS - Europe - Central - Frankfurt'
		}, {
			'id': 'eu-west-1',
			'name': 'AWS - Europe - West - Ireland'
		}, {
			'id': 'ap-south-1',
			'name': 'AWS - Asia Pacific - South - Mumbai'
		}, {
			'id': 'ap-southeast-1',
			'name': 'AWS - Asia Pacific - South East - Singapore'
		}
	],
	'total_items': 9
}

Get Multiple Publishing Jobs

Retrieves all publishing jobs.

Request

Request syntax:

GET /syndication-jobs

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the requested endpoint.

@type

String

Returns Collection.

items

List of dictionaries

Contains a list of publishing jobs.

total_items

Integer

Indicates the total number of publishing jobs.

items List

The items list describes each publishing job via the following properties:

Name

Data Type

Description

content_description

String

Indicates the name of the live channel or live event identified by the content_id parameter.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

description

String

Indicates the name of the publishing target.

id

String

Identifies this publishing job by its system-defined ID.

job_status

String

Indicates a publishing job's status. Valid values are:

platform

String

Identifies a social media or content distribution platform by its name. Valid values are:

Facebook | YouTube | Twitch | Periscope | Zixi | Other

region

String

Indicates the publishing job's publishing location by its system-defined ID.

Use the Get All Publishing Locations endpoint to retrieve a list of publishing locations and their system-defined IDs.

region_auto_selected

Boolean

Indicates whether the publishing job's publishing location was auto selected.

start

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing job was started.

stop

String

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing job was stopped.

syndication_target_id

String

Identifies a publishing target by its system-defined ID.

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-pull | zixi | srt | rist

Sample Request/Response

Call the get_multiple_publishing_jobs module (Python 3) to retrieve publishing jobs. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingJob:
    def __init__(self):
        self.host = "https://services.uplynk.com"

    def run(self):
        self._get_publishing_jobs()
  
    def _get_publishing_jobs(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-jobs")
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingJob().run()

Response:

{
	'@id': '/api/v4/syndication-jobs',
	'@type': 'Collection',
	'items': [{
			'@id': '/api/v4/syndication-jobs/23248d5c270340ca86ca7a36e155e794',
			'@type': 'SyndicationData',
			'id': '23248d5c270340ca86ca7a36e155e794',
			'start': '',
			'stop': '1630236590416',
			'syndication_target_id': '7caf1c6c67d041ad8210e7e493be781f',
			'status': 'stopped',
			'content_id': 'gn2df67cbcf24e74bf564816ebecc0fg',
			'content_type': 'c',
			'syndication_target_description': 'Events',
			'syndication_target_platform': 'Facebook',
			'syndication_target_protocol': 'rtmp',
			'content_description': 'Sales'
		}, {
			'@id': '/api/v4/syndication-jobs/4806d5badf5349f9823f358993611ebc',
			'@type': 'SyndicationData',
			'id': '4806d5badf5349f9823f358993611ebc',
			'start': '',
			'stop': '1629717143701',
			'syndication_target_id': 'e5464aeab08245eeb28bfed8470731g6',
			'status': 'stopped',
			'content_id': '6b2df67cbcf24e74bf564816ebecc44k',
			'content_type': 'c',
			'syndication_target_description': 'Conferences',
			'syndication_target_platform': 'YouTube',
			'syndication_target_protocol': 'rtmp',
			'content_description': 'Marketing'
		}
	],
	'total_items': 2
}

Get Multiple Publishing Schedules

Retrieves all publishing schedulesRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

GET /syndication-schedule

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the requested endpoint.

@type

String

Returns Collection.

items

List of dictionaries

Contains a list of publishing schedules.

total_items

Integer

Indicates the total number of publishing schedules.

items List

The items list describes each publishing schedule via the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing schedule.

@type

String

Returns SyndicationSchedule.

audio_track

String

Indicates the name of the audio track that will be published.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

err_msg

String

Indicates the publishing schedule's last error message. The system generates an error message whenever the publishing schedule's status is set to error.

id

String

Indicates the system-defined ID for the publishing schedule.

last_status

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule's status was last updated.

region

String

Indicates the location where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. An empty string identifies the default output location.

region_auto_selected

Boolean

Indicates whether this publishing schedule's publishing location is set to auto selected.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Indicates whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

source_url_params

Dictionary

Contains key-value pairs for query string parameters. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

 

start

Integer

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule was last started.

status

String

Indicates the publishing schedule's status. Valid values are:

active | stopping | stopped | scheduled | error

stop

Integer

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing schedule entered the stopped state.

syndication_target_description

String

Indicates the description for the publishing target.

syndication_target_id

String

Indicates the system-defined ID for the publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's settings.

type

String

Returns downloader.

url_params_active

Boolean

Indicates whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following properties:

Name

Data Type

Description

broadcast_id

String

Reserved for internal use.

channel_id_pristine

String

Reserved for internal use.

hls_master_url

String

HLS (Pull) Only

Indicates the URL to which our service will push a HLS stream once you start publishing to this target. You will need to configure the desired social media or content distribution platform to pull the stream using this URL.

integrated

Boolean

Reserved for future use.

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Indicates whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Indicates the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

stream_id

String

Reserved for internal use.

Sample Request/Response

Call the get_multiple_publishing_schedules module (Python 3) to retrieve all publishing schedules. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._get_publishing_schedule()
  
    def _get_publishing_schedule(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-schedule")
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule",
	"@type": "Collection",
	"items": [{
			"@id": "/api/v4/syndication-schedule/e8d6b5cb940c40cc9ec6ad081a38f3f0",
			"@type": "SyndicationSchedule",
			"id": "e8d6b5cb940c40cc9ec6ad081a38f3f0",
			"start": "",
			"stop": "",
			"syndication_target_id": "d30f655670cb426c98cd28afb6291bf4",
			"status": "scheduled",
			"last_status": "",
			"err_msg": "",
			"type": "downloader",
			"video_quality": "medium",
			"audio_track": "en",
			"content_id": "1df8d13992cd4222a7343b8fafd89cd7",
			"content_type": "c",
			"syndication_target_description": "My Publishing Schedule"
		}
	],
	"total_items": 1
} 

Get Multiple Publishing Targets

Retrieves all publishing targetsRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

GET /syndication-target

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the requested endpoint.

@type

String

Returns Collection.

items

List of dictionaries

Contains a list of publishing targets.

total_items

Integer

Indicates the total number of publishing targets.

items List

The items list describes each publishing target via the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing target.

@type

String

Returns SyndicationTarget.

description

String

Indicates a description for the social media or content distribution platform.

id

String

Identifies this publishing target by its system-defined ID.

platform

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

status

String

Indicates the publishing target's status. Valid values are:

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

target_stream

String

Returns ******. This value represents either a stream URL or a stream key when the integrated parameter is set to false.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Indicates the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Indicates the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Indicates how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

page_id

String

Facebook Only

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the password of the stream to which your content will be published.

port

Integer

Indicates the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Indicates whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

remote_id

String

Reserved for future use.

stream_id

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the ID of the stream to which your content will be published.

type

String

Returns push.

Sample Request/Response

Call the get_multiple_publishing_targets module (Python 3) to retrieve multiple publishing targets. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingTarget:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._get_publishing_target()
  
    def _get_publishing_target(self):
        url = "{}{}".format(self.host, "/api/v4/syndication-target")
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingTarget().run()

Response:

{
	"@id": "/api/v4/syndication-target",
	"@type": "Collection",
	"items": [{
			"@id": "/api/v4/syndication-target/587be125932f4428b83e4435e41503b7",
			"@type": "SyndicationTarget",
			"id": "587be125932f4428b83e4435e41503b7",
			"platform": "Facebook",
			"description": "Facebook publishing",
			"target_protocol": "rtmp",
			"target_stream": "******",
			"status": "stopped"
		}
	],
	"total_items": 1
}

Get Publishing Schedule

Retrieves the configuration for a publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

GET /syndication-schedule/Publishing Schedule ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Schedule ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing schedule.

Use the Get Multiple Publishing Schedules endpoint to retrieve a list of publishing schedules and their system-defined IDs.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing schedule.

@type

String

Returns SyndicationSchedule.

audio_track

String

Indicates the name of the audio track that will be published.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

err_msg

String

Indicates the publishing schedule's last error message. The system generates an error message whenever the publishing schedule's status is set to error.

id

String

Indicates the system-defined ID for the publishing schedule.

last_status

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule's status was last updated.

region

String

Indicates the location where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. An empty string identifies the default output location.

region_auto_selected

Boolean

Indicates whether this publishing schedule's publishing location is set to auto selected.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Indicates whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

source_url_params

Dictionary

Contains key-value pairs for query string parameters. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

 

start

Integer

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule was last started.

status

String

Indicates the publishing schedule's status. Valid values are:

active | stopping | stopped | scheduled | error

stop

Integer

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing schedule entered the stopped state.

syndication_target_description

String

Indicates the description for the publishing target.

syndication_target_id

String

Indicates the system-defined ID for the publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's settings.

type

String

Returns downloader.

url_params_active

Boolean

Indicates whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following properties:

Name

Data Type

Description

broadcast_id

String

Reserved for internal use.

channel_id_pristine

String

Reserved for internal use.

hls_master_url

String

HLS (Pull) Only

Indicates the URL to which our service will push a HLS stream once you start publishing to this target. You will need to configure the desired social media or content distribution platform to pull the stream using this URL.

integrated

Boolean

Reserved for future use.

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Indicates whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Indicates the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

stream_id

String

Reserved for internal use.

Sample Request/Response

Call the get_publishing_schedule module (Python 3) to get a publishing schedule. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._get_publishing_schedule()
  
    def _get_publishing_schedule(self):
        publishing_schedule_id = 'e8d6b5cb940c40cc9ec6ad081a38f3f0'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-schedule/", publishing_schedule_id)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule/e8d6b5cb940c40cc9ec6ad081a38f3f0",
	"@type": "SyndicationSchedule",
	"id": "e8d6b5cb940c40cc9ec6ad081a38f3f0",
	"start": "",
	"stop": "",
	"syndication_target_id": "d30f655670cb426c98cd28afb6291bf4",
	"status": "scheduled",
	"last_status": "",
	"err_msg": "",
	"type": "downloader",
	"video_quality": "medium",
	"audio_track": "en",
	"content_id": "1df8d13992cd4222a7343b8fafd89cd7",
	"content_type": "c",
	"syndication_target_description": "My Publishing Schedule"
} 

Get Publishing Target

Retrieves the configuration for a specific publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

GET /syndication-target/Publishing Target ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Target ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing target configuration.

Use the Get Multiple Publishing Targets endpoint to retrieve a list of publishing targets and their system-defined ID.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing target.

@type

String

Returns SyndicationTarget.

description

String

Indicates a description for the social media or content distribution platform.

id

String

Identifies this publishing target by its system-defined ID.

platform

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

status

String

Indicates the publishing target's status. Valid values are:

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

target_stream

String

Returns ******. This value represents either a stream URL or a stream key when the integrated parameter is set to false.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Indicates the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Indicates the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Indicates how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

page_id

String

Facebook Only

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the password of the stream to which your content will be published.

port

Integer

Indicates the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Indicates whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

remote_id

String

Reserved for future use.

stream_id

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the ID of the stream to which your content will be published.

type

String

Returns push.

Sample Request/Response

Call the get_publishing_target module (Python 3) to get a publishing target configuration. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class PublishingTarget:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._get_publishing_target()
  
    def _get_publishing_target(self):
        publishing_target_id = '587be125932f4428b83e4435e41503b7'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-target/", publishing_target_id)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
PublishingTarget().run()

Response:

{
	"@id": "/api/v4/syndication-target/587be125932f4428b83e4435e41503b7",
	"@type": "SyndicationTarget",
	"id": "587be125932f4428b83e4435e41503b7",
	"platform": "Facebook",
	"description": "Facebook publishing",
	"target_protocol": "rtmp",
	"target_stream": "******",
	"status": "stopped"
}

Get Rays

Retrieves encoding information for the raysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices. associated with a specific publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Request

Request syntax:

GET /syndication-ray-details/Publishing Schedule ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Schedule ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing schedule.

Use the Get Multiple Publishing Schedules endpoint to retrieve a list of publishing schedules and their system-defined ID.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns the rays corresponding to a publishing schedule configuration.

@type

String

Returns RayDetails.

all

List of dictionaries

Contains a list of rays and their encoding details.

high

Dictionary

Contains encoding details for high quality publishing.

low

Dictionary

Contains encoding details for low quality publishing.

medium

Dictionary

Contains encoding details for medium quality publishing.

Ray Dictionary

This type of dictionary describes the encoding details for:

Each of these dictionaries contain the following properties:

Name

Data Type

Description

active

Boolean

Indicates whether a publishing schedule has been configured to use this ray.

A publishing schedule may only be configured to use a single ray.

audio_codec

String

Indicates the ray's audio codec. Returns AAC.

audio_kbps

Integer

Indicates the ray's audio bitrate.

fps

Integer

Indicates the number of frames per second.

max_height

Integer

Indicates the ray's maximum height in pixels.

max_width

Integer

Indicates the ray's maximum width in pixels.

ray_name

String

all List Only

Indicates the name of the ray.

video_codec

String

Indicates the ray's video codec. Valid values are:

AVC | HEVC

video_kbps

Integer

Indicates the ray's video bitrate in kbps.

Sample Request/Response

Call the get_rays module (Python 3) to get the rays corresponding to a publishing schedule configuration. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class RayDetails:
    def __init__(self):
        self.host = "https://services.uplynk.com"

    def run(self):
        self._get_rays()
  
    def _get_rays(self):
        publishing_schedule_id = 'a9b1a994baab48adbcfceb23523bbab5'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-ray-details/", publishing_schedule_id)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
RayDetails().run()

Response:

{
	"@id": "/api/v4/syndication-ray-details/98c880d6582d461d883dc0e733a2a4cd",
	"@type": "RayDetails",
	'all': [{
			'audio_codec': 'AAC',
			'fps': 22,
			'max_height': 54,
			'video_kbps': 36,
			'max_width': 96,
			'ray_name': 'a',
			'audio_kbps': 18,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 15,
			'max_height': 108,
			'video_kbps': 58,
			'max_width': 192,
			'ray_name': 'b',
			'audio_kbps': 30,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 30,
			'max_height': 144,
			'video_kbps': 130,
			'max_width': 256,
			'ray_name': 'c',
			'audio_kbps': 48,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 30,
			'max_height': 234,
			'video_kbps': 276,
			'max_width': 416,
			'ray_name': 'd',
			'audio_kbps': 78,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 30,
			'max_height': 396,
			'video_kbps': 560,
			'max_width': 704,
			'ray_name': 'e',
			'audio_kbps': 96,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 30,
			'max_height': 504,
			'video_kbps': 1040,
			'max_width': 896,
			'ray_name': 'f',
			'audio_kbps': 128,
			'active': False,
			'video_codec': 'AVC'
		}, {
			'audio_codec': 'AAC',
			'fps': 30,
			'max_height': 720,
			'video_kbps': 2372,
			'max_width': 1280,
			'ray_name': 'g',
			'audio_kbps': 128,
			'active': False,
			'video_codec': 'AVC'
		}
	],
	"low": {
		"max_width": 704,
		"max_height": 396,
		"fps": 30,
		"video_codec": "AVC",
		"video_kbps": 560,
		"audio_codec": "AAC",
		"audio_kbps": 96,
		"active": false
	},
	"medium": {
		"max_width": 896,
		"max_height": 504,
		"fps": 30,
		"video_codec": "AVC",
		"video_kbps": 1040,
		"audio_codec": "AAC",
		"audio_kbps": 128,
		"active": false
	},
	"high": {
		"max_width": 1280,
		"max_height": 720,
		"fps": 30,
		"video_codec": "AVC",
		"video_kbps": 2372,
		"audio_codec": "AAC",
		"audio_kbps": 128,
		"active": true
	}
}

Get Syndication Publishing-Compatible Clipping Profiles

Retrieves all Facebook or YouTube Clipping profiles.

Request

Request syntax:

GET /syndication-clipping-profiles?service=Social Media or Content Distribution Platform

Query string parameter:

Pass the following query string parameter:

Name Description

service

Required

Set it to either of the following values:

Facebook | YouTube

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the requested endpoint.

@type

String

Returns Collection.

items

List of dictionaries

Contains a list of Clipping profiles.

total_items

Integer

Indicates the total number of Clipping profiles.

items List

The items list describes each clipping profile via the following properties:

Name

Data Type

Description

id

String

Identifies this Clipping profile by its system-defined ID.

name

String

Identifies this Clipping profile by its name.

Sample Request/Response

Call the get_syndication_publishing_compatible_clipping_profiles module (Python 3) to retrieve Clipping profiles. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
  
class ClippingProfiles:
    def __init__(self):
        self.host = "https://services.uplynk.com

    def run(self):
        self._get_clipping_profiles()
  
    def _get_clipping_profiles(self):
        platform = 'YouTube'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-clipping-profiles?service=", platform)
 
        headers = {'Content-Type': 'application/json'}
  
        response = requests.get(
            url, params=APIParams(APICredentials()).get_params({}), headers=headers
        )
  
        print(response.json())
  
ClippingProfiles().run()

Response:

{
	'@id': '/api/v4/syndication-clipping-profiles?service=YouTube',
	'@type': 'Collection',
	'items': [{
			'id': '4f3d0b8d4c37457eae629506528c982c',
			'name': 'Marketing Conferences - YouTube'
		}
	],
	'total_items': 1
}

Start / Stop Publishing

Start or stop publishing to a social media or content distribution platform.

Request

Request syntax:

PATCH /syndication-schedule-action/Publishing Schedule ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Schedule ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing scheduleRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform..

Use the Get Multiple Publishing Schedules endpoint to retrieve a list of publishing schedules and their system-defined ID.

Request body parameter:

Pass the following request body parameter:

Name

Data Type

Description

mode

String

Determines whether to start or stop publishing. Valid values are:

  • start: Toggles the publishing schedule's status to active.
  • stop: Toggles the publishing schedule's status to stopped.

Use this parameter to toggle the current status. An active publishing schedule cannot be started. Likewise, you cannot stop a publishing schedule that has already been stopped.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to the endpoint that was requested.

@type

String

Returns StartSyndicationSchedule.

audio_track

String

Indicates the name of the audio track that will be published.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

err_msg

String

Indicates the publishing schedule's last error message. The system generates an error message whenever the publishing schedule's status is set to error.

id

String

Indicates the system-defined ID for the publishing schedule.

last_status

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule's status was last updated.

region

String

Indicates the location where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. An empty string identifies the default output location.

region_auto_selected

Boolean

Indicates whether the output location was auto selected.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Indicates whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

start

Integer

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule was last started.

status

String

Indicates the publishing schedule's status. Valid values are:

active | stopping | stopped | scheduled | error

stop

Integer

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing schedule entered the stopped state.

syndication_target_description

String

Indicates the description for the publishing target.

syndication_target_id

String

Indicates the system-defined ID for the publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's settings.

type

String

Reserved for future use.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following properties:

Name

Data Type

Description

broadcast_id

String

Reserved for internal use.

channel_id_pristine

String

Reserved for internal use.

hls_master_url

String

HLS (Pull) Only

Indicates the URL to which our service will push a HLS stream once you start publishing to this target. You will need to configure the desired social media or content distribution platform to pull the stream using this URL.

integrated

Boolean

Reserved for future use.

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Indicates whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Indicates the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

stream_id

String

Reserved for internal use.

Sample Request/Response

Call the start_stop_publishing module (Python 3) to start or stop a publishing schedule. This module imports names from the api_auth module.

import json
import requests
from api_auth import APICredentials, APIParams
  
class StartStopPublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"

    def run(self):
        self._action_publishing_schedule()
 
    def _action_publishing_schedule(self):
 
        publishing_schedule_id = '04359728c4d346ac918ba7b3edff2cb1'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-schedule-action/", publishing_schedule_id)
 
        payload = {
            'mode': 'stop'
        }
 
        headers = {'Content-Type': 'application/json'}
 
        response = requests.patch(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
 
        print(response.json())

StartStopPublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule-action/04359728c4d346ac918ba7b3edff2cb1",
	"@type": "StartSyndicationSchedule",
	"id": "04359728c4d346ac918ba7b3edff2cb1",
	"start": 1588098944096,
	"stop": 1588098960071,
	"syndication_target_id": "d30f655670cb426c98cd28afb6291bf4",
	"status": "stopped",
	"last_status": 1588098960071,
	"err_msg": "",
	"type": "downloader",
	"video_quality": "high",
	"audio_track": "",
	"content_id": "1df8d13992cd4222a7343b8fafd89cd7",
	"content_type": "c",
	"syndication_target_description": "Sample"
}

Update Publishing Schedule

Update a publishing schedule'sRefers to a configuration that identifies a live channel or live event and a publishing target. Use a publishing schedule to syndicate a live channel or a live event to a social media platform. video quality.

A publishing schedule's video quality may only be modified when its status is stopped.

Request

Request syntax:

PATCH /syndication-schedule/Publishing Schedule ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Schedule ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing schedule.

Use the Get Multiple Publishing Schedules endpoint to retrieve a list of publishing schedules and their system-defined ID.

Request body parameter:

Pass the following request body parameters:

Name

Data Type

Description

region

String

Identifies a publishing location by its system-defined ID. A publishing location determines where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. Set this property to an empty string to use the default output location.

Use the Get All Publishing Locations endpoint to retrieve a list of regions and their system-defined IDs.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Determines whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_url_params

Dictionary

Define a key-value pair for each desired query string parameter. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

Example:

'source_url_params': {
	'delay': '20',
	'ad': 'sportcreatives'
}	

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's setting.

url_params_active

Boolean

Determines whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following property:

Name

Data Type

Description

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Determines the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Determines the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Determines whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Sets the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull) Only

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing schedule.

@type

String

Returns SyndicationSchedule.

audio_track

String

Indicates the name of the audio track that will be published.

content_id

String

Identifies a live channel or live event by its system-defined ID.

content_type

String

Indicates whether the content_id parameter identifies a live channel or a live event. Valid values are:

  • e: Live Event
  • c: Live Channel

err_msg

String

Indicates the publishing schedule's last error message. The system generates an error message whenever the publishing schedule's status is set to error.

id

String

Indicates the system-defined ID for the publishing schedule.

last_status

String

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule's status was last updated.

region

String

Indicates the location where your stream will be converted to a feed that may be ingested by the social media or content distribution platform identified by the publishing target. An empty string identifies the default output location.

region_auto_selected

Boolean

Indicates whether this publishing schedule's publishing location is set to auto selected.

scte35_enabled

Integer

HLS (Push/Pull) or Zixi (Push)

Indicates whether SCTE-35 markers will be inserted into the published stream. Valid values are:

  • 0: Disabled.
  • 1: Enabled.

source_stream

Deprecated

String

This parameter has been deprecated.

source_url_params

Dictionary

Contains key-value pairs for query string parameters. Syndication Publishing adds these parameters to the playback URL published to your social media or content distribution platform.

 

start

Integer

Indicates the timestamp, in Unix time (milliseconds), at which the publishing schedule was last started.

status

String

Indicates the publishing schedule's status. Valid values are:

active | stopping | stopped | scheduled | error

stop

Integer

Indicates the timestamp, in Unix time (milliseconds), for either of the following conditions:

  • Active Publishing Schedule: Reports one year from the start time.
  • Stopped Publishing Schedule: Reports the timestamp at which the publishing schedule entered the stopped state.

syndication_target_description

String

Indicates the description for the publishing target.

syndication_target_id

String

Indicates the system-defined ID for the publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

target_platform_config

Dictionary

HLS (Push/Pull) or Zixi (Push)

Contains a social media or content distribution platform's settings.

type

String

Returns downloader.

url_params_active

Boolean

Indicates whether our service may add your custom query string parameters to the playback URLs defined within the manifest file.

video_quality

String

Indicates the stream quality that will be published to the social media or content distribution platform. Valid values are:

high | medium | low

target_platform_config Dictionary

The target_platform_config dictionary describes a social media or content distribution platform's settings via the following properties:

Name

Data Type

Description

broadcast_id

String

Reserved for internal use.

channel_id_pristine

String

Reserved for internal use.

hls_master_url

String

HLS (Pull) Only

Indicates the URL to which our service will push a HLS stream once you start publishing to this target. You will need to configure the desired social media or content distribution platform to pull the stream using this URL.

integrated

Boolean

Reserved for future use.

integrated_description

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's description.

integrated_title

String

Facebook and YouTube (Integrated Authentication)

Indicates the video's title.

integrated_yt_made_for_kids Boolean

YouTube (Integrated Authentication) Only

Indicates whether the video is appropriate for kids.

integrated_yt_privacy

String

YouTube (Integrated Authentication) Only

Indicates the video's privacy level. Valid values are:

public | private | unlisted

rays

List of string values

HLS (Push/Pull)

Contains a list of the ray(s) that will be published.

Use the Get Rays endpoint to retrieve a list of rays (all) and their names (ray_name).

stream_id

String

Reserved for internal use.

Sample Request/Response

Call the update_publishing_schedule module (Python 3) to update a publishing schedule. This module imports names from the api_auth module.

import json
import requests
from api_auth import APICredentials, APIParams
  
class PublishingSchedule:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._update_publishing_schedule()
 
    def _update_publishing_schedule(self):
        publishing_schedule_id = '04359728c4d346ac918ba7b3edff2cb1'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-schedule/", publishing_schedule_id)
 
        payload = {
            'video_quality': 'high',
        }
 
        headers = {'Content-Type': 'application/json'}
 
        response = requests.patch(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
 
        print(response.json())
  
PublishingSchedule().run()

Response:

{
	"@id": "/api/v4/syndication-schedule/04359728c4d346ac918ba7b3edff2cb1",
	"@type": "SyndicationSchedule",
	"id": "04359728c4d346ac918ba7b3edff2cb1",
	"start": "",
	"stop": "",
	"syndication_target_id": "d30f655670cb426c98cd28afb6291bf4",
	"status": "scheduled",
	"last_status": "",
	"err_msg": "",
	"type": "downloader",
	"video_quality": "high",
	"audio_track": "",
	"content_id": "1df8d13992cd4222a7343b8fafd89cd7",
	"content_type": "c",
	"syndication_target_description": "My Publishing Schedule"
} 

Update Publishing Target

Updates a publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform. configuration.

Request

Request syntax:

PATCH /syndication-target/Publishing Target ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Target ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing target configuration.

Use the Get Multiple Publishing Targets endpoint to retrieve a list of publishing targets and their system-defined ID.

Request body parameters:

Pass the following request body parameters:

Name

Data Type

Description

description

String

Indicates a description for the social media or content distribution platform.

platform

Required

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

target_protocol

Required

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

Key information:

  • AWS Elemental MediaConnect or Pluto TV: Set this parameter to zixi.
  • Facebook, YouTube, TikTok, or Twitch: Set this parameter to rtmp.

target_stream

Required

String

Required for Facebook (stream key), TikTok, Twitch, YouTube (stream key), and Custom (RTMP, RTMPS, HLS - Push, SRT - Push, and RIST - Push)

Identifies the stream to which your content will be published. This parameter's configuration varies by platform.

  • Facebook, TikTok, Twitch, and YouTube

    Set this parameter to the desired stream key.

    If you are publishing to Facebook and the integrated parameter is set to true, then your live stream will be published according to the page_id parameter instead.

    If you are publishing to YouTube and the integrated parameter is set to true, then your live stream will be published to a YouTube Studio dashboard instead.

    Please refer to the documentation provided by the desired social media or content distribution platform to learn where to find your stream key(s).

  • Custom (RTMP, RTMPS, HLS - Push, SRT - Push, and RIST - Push)

    Set this parameter to the desired stream URL.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Identifies the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Determines how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

Default value: 

false

page_id

Required

String

Facebook Only: Required when the integrated property is set to true.

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the password of the stream to which your content will be published.

port

Required

Integer

Identifies the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Determines whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

Default value: 

false

stream_id

Required

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Identifies the ID of the stream to which your content will be published.

type

String

Set to push.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing target.

@type

String

Returns SyndicationTarget.

description

String

Indicates a description for the social media or content distribution platform.

id

String

Identifies this publishing target by its system-defined ID.

platform

String

Identifies a social media or content distribution platform by its case-sensitive name. Valid values are:

AWS Elemental MediaConnect | Custom | Facebook | Pluto TV | TikTok | Twitch | YouTube

platform_config

Dictionary

Contains additional platform-specific settings.

status

String

Indicates the publishing target's status. Valid values are:

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-push | zixi | srt | rist

target_stream

String

Returns ******. This value represents either a stream URL or a stream key when the integrated parameter is set to false.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Indicates the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Indicates the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Indicates how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

page_id

String

Facebook Only

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the password of the stream to which your content will be published.

port

Integer

Indicates the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Indicates whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

remote_id

String

Reserved for future use.

stream_id

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the ID of the stream to which your content will be published.

type

String

Returns push.

Sample Request/Response

Call the update_publishing_target module (Python 3) to update a publishing target configuration. This module imports names from the api_auth module.

import json
import requests
from api_auth import APICredentials, APIParams
  
class PublishingTarget:
    def __init__(self):
        self.host = "https://services.uplynk.com"
  
    def run(self):
        self._update_publishing_target()
  
    def _update_publishing_target(self):
        publishing_target_id = '587be125932f4428b83e4435e41503b7'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-target/", publishing_target_id)
 
        payload = {
            'target_stream': 'rtmp://platform.example.com/live/3u40-9rqs-502b-7zeq',
            'platform': 'Facebook',
            'description': 'Facebook publishing',
            'target_protocol': 'rtmp',
        }
  
        headers = {'Content-Type': 'application/json'}
  
        response = requests.patch(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
  
        print(response.json())
  
PublishingTarget().run()

Response:

{
	"@id": "/api/v4/syndication-target/587be125932f4428b83e4435e41503b7",
	"@type": "SyndicationTarget",
	"id": "587be125932f4428b83e4435e41503b7",
	"platform": "Facebook",
	"description": "Facebook publishing",
	"target_protocol": "rtmp",
	"target_stream": "rtmp://platform.example.com/live/3u40-9rqs-502b-7zeq",
	"status": "stopped"
}

Validate Stream URL

Validates that our service can connect to a social media or content distribution platform using the stream URL associated with a specific publishing targetRefers to a configuration that identifies the URL to which your content may be published. A publishing schedule leverages a publishing target configuration to syndicate a live channel or a live event to a social media platform..

This endpoint cannot be used to verify HLS pull streams, since our service does not connect to a social media or content distribution platform when publishing a pull target. Rather, it is up to the social media or content distribution platform to pull the stream using the publishing schedule's HLS pull URL.

Request

Request syntax:

PATCH /syndication-target-test/Publishing Target ID

Define the following variable when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

Publishing Target ID

Required

Replace this variable with the system-defined ID assigned to the desired publishing target configuration.

Use the Get Multiple Publishing Targets endpoint to retrieve a list of publishing targets and their system-defined ID.

Request body parameters:

Pass the following request body parameters:

Name

Data Type

Description

test

String

Set this parameter to rtmp-connection.

Authentication

Pass a digital signature based off of msg.

Learn more.

Response

The response for a successful request contains the following properties:

Name

Data Type

Description

@id

String

Indicates the relative path to an endpoint that returns this publishing target.

@type

String

Returns SyndicationTargetAction.

description

String

Indicates a description for the social media or content distribution platform.

id

String

Identifies this publishing target by its system-defined ID.

platform

String

Identifies a social media or content distribution platform by its name. Valid values are:

Facebook | YouTube | Twitch | Periscope | Zixi | Other

platform_config

Dictionary

Contains additional platform-specific settings.

status

String

Indicates the publishing target's status. Valid values are:

target_protocol

String

Indicates the protocol through which your content will be published. Valid values are:

rtmp | rtmps | hls | hls-pull | zixi | srt | rist

target_stream

String

Returns ******. This value represents the URL to which your stream will be published.

test

Dictionary

Contains the results of the stream URL validation.

platform_config Dictionary

The platform_config dictionary contains the following platform-specific settings:

Name

Data Type

Description

clipping_profile_id

String

Facebook and YouTube (Integrated Authentication)

Indicates the Clipping profile, whose credentials will be used to authenticate to Facebook or YouTube, by its system-defined ID.

Use the Get Syndication Publishing-Compatible Clipping Profiles endpoint to retrieve Clipping profiles and their system-defined IDs.

host

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Indicates the hostname or IP address for the desired platform or your Zixi-enabled device.

integrated

Boolean

Facebook and YouTube

Indicates how your live stream will be published to Facebook or YouTube. Valid values are:

  • true: Live streams will be published using integrated authentication to either:

    • The Facebook page identified by the page_id property.
    • A YouTube Studio dashboard.
  • false: Live streams will be published to the stream URL identified by the target_stream property.

page_id

String

Facebook Only

Identifies a Facebook page by its system-defined ID. Your live stream will be published to this page.

Learn more (Live Channels).

Learn more (Live Events).

password

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the password of the stream to which your content will be published.

port

Integer

Indicates the port for the desired platform or platform-enabled device.

Zixi-enabled devices and servers typically listen on port 2088.

re_schedule

Boolean

Facebook Only

Indicates whether our service will create and then publish a new Facebook live event upon reaching Facebook's live event time limit.

remote_id

String

Reserved for future use.

stream_id

String

AWS Elemental MediaConnect, Pluto TV, and ZIXI (Push)

Returns ******. This value represents the ID of the stream to which your content will be published.

type

String

Returns push.

test Dictionary

The test dictionary contains the results for the following tests:

Name

Data Type

Description

passed

List of string values

Contains a message for each test that passed.

Example:

uri is valid

failed

List of string values

Contains a message for each test that failed.

Example:

failure to connect via rtmp

Sample Request/Response

Call the validate_stream_url module (Python 3) to validate a stream URL. This module imports names from the api_auth module.

import requests
from api_auth import APICredentials, APIParams
 

import json
import requests
from api_auth import APICredentials, APIParams
  
class ValidateStreamURL:
    def __init__(self):
        self.host = "https://services.uplynk.com"

    def run(self):
        self._validate_stream_url()
 
    def _validate_stream_url(self):
        publishing_target_id = 'b7abed5070384462ae0fec6bd791262e'
        url = "{}{}{}".format(self.host, "/api/v4/syndication-target-test/", publishing_target_id)
 
        payload = {'test': 'rtmp-connection'}
        headers = {'Content-Type': 'application/json'}
        response = requests.patch(
            url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers
        )
 
        print(response.json())

ValidateStreamURL().run()

Response:

{
	"@id": "/api/v4/syndication-target-test/b7abed5070384462ae0fec6bd791262e",
	"@type": "SyndicationTargetAction",
	"id": "b7abed5070384462ae0fec6bd791262e",
	"platform": "Facebook",
	"description": "Facebook publishing",
	"target_protocol": "rtmp",
	"target_stream": "******",
	"status": "stopped",
	"test": {
		"passed": [
			"uri is valid"
		],
		"failed": [
			"failure to connect via rtmp"
		]
	}
}