Integration of Roku with Vimeo to enable Vimeo video hosting
Posted By : Rupesh Sharma | 26-Nov-2018
Integration of Roku with Vimeo to enable Vimeo video hosting.
Roku application often uses video hosting in order to give an easy management of videos provided with the various features that Vimeo provide to integrate videos with Roku application.
Vimeo services come with various plans depending upon the features like the amount of data permitted every year, a number of users permitted to use the account
Here we will discuss look at the code required to integrate your application with Vimeo account.
1. After successfully choosing a plan, our step is to create an app that will provide us with the necessary credentials to be used within the code. The link for creating an app in Vimeo is: https://developer.vimeo.com/
2. Completing the details for the app, the credential that is required is "Access Token".
3. This token will be required to call the APIs of the Vimeo to get the JSON data of the videos.
4. The videos will be saved in the form of albums in Vimeo account. Now the API to get the JSON of the albums' data is "https://api.vimeo.com/users/USER_UNIQUE_NUMBER". Following is the implementation of the code.
sub showChannelSGScreen()
mainUrl = "https://api.vimeo.com/users/88043989"
urlOfAllAlbum = mainUrl + "/albums"
jsonValue = getDataFromUrl(urlOfAllAlbum.trim())
list = []
for each albumItem in jsonvalue.data
albumName = albumItem.name
eachVideoUrl = mainUrl + albumItem.metadata.connections.videos.uri
jsonOfEachVideo = getDataFromUrl(eachVideoUrl.trim())
videosItem = []
for each videoData in jsonOfEachVideo.data
item = {}
item.EpisodeNumber = Right(videoData.uri, 9)
item.title = videoData.name
item.description = videoData.description
item.SDPosterUrl = videoData.pictures.sizes[0].link
item.HDPosterUrl = videoData.pictures.sizes[3].link
' here a medium size picture taken , we can choose from 7 different sizes
if videoData.duration <> invalid
item.Length = videoData.duration
else
item.Length = 120
end if
item.hdBackgroundImageUrl = videoData.pictures.sizes.peek().link
if item <> invalid then
videosItem.push(item)
else
? "error in pushin item in videosItem"
end if
end for
list.push({ Title: albumName
ContentList: videosItem })
end for
end sub
function getDataFromUrl(url as String) as Object
request = CreateObject("roUrlTransfer")
port = CreateObject("roMessagePort")
request.SetMessagePort(port)
request.SetUrl(url)
request.addHeader("Authorization", "bearer f11832710cff860ae2dfwfw32dssn9223dss")
request.setCertificatesFile("common:/certs/ca-bundle.crt")
request.initClientCertificates()
request.enableEncodings(true)
request.RetainBodyOnError(true)
if (request.AsyncGetToString())
while (true)
msg = Wait(0, port)
if (Type(msg) = "roUrlEvent")
code = msg.GetResponseCode()
if (code = 200)
' playlist = CreateObject("roArray", 10, true)
jsonValue = ParseJson(msg.GetString())
return jsonValue
else
? "code is other than 200"
end if
else if (event = invalid)
? "REQUEST CANCELLED"
request.AsyncCancel()
end if
end while
end if
? "RETURNING INVALID"
return invalid
end function
5. Then this data can be inserted into a content node in order to show them into any grid screen. 6. For example, a grid screen could be of a type where we can show consecutive images with various details like description, poster etc as retrieved above. In this way, we can integrate videos on the Vimeo account.
Hope this will help !!
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
Rupesh Sharma
Rupesh Sharma is a trainee here as an assistant consultant developer. His core interest is in java and posses good analytical and logical skills. He likes to learn new technology and will be to glad to get feedbacks for improvement.