rbenditt
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2016
05:08 PM
Getting Data from ID3 Tags
I'm having some trouble getting ID3 tags out of a stream. In my particular case, I'm using the ID3 tags as a beacon for ad events, so I'm putting ad information in the tags.
When I look at my stream in a web player that has an onMetadata event, I get metadata that looks like this:
This pretty much gives the information that I am looking for.
In my Roku app, I have this code to get the ID3 tag:
When the same ID3 tag shown above comes through on the Roku app, this is what I get when I print theMetadata:
The data is quite a bit sparser, plus that "dID" bit sort of looks like a malformed version of the "adID" string. What I really want is to be able to retrieve the ad url.
How can I get the other data like my web player is seeing?
Thanks,
Ron
When I look at my stream in a web player that has an onMetadata event, I get metadata that looks like this:
metadata: {frames: [{key: "TXXX", info: "adID", data: "http://localhost/ads/testVAST.xml"}], TXXX: "http://localhost/ads/testVAST.xml"}
This pretty much gives the information that I am looking for.
In my Roku app, I have this code to get the ID3 tag:
msg = wait(0, video.GetMessagePort())
if type(msg) = "roVideoScreenEvent"
if msg.isTimedMetaData() then
// ID3 Tag Received
theMetadata = msg.GetInfo()
print theMetadata
end if
end if
When the same ID3 tag shown above comes through on the Roku app, this is what I get when I print theMetadata:
<Component: roAssociativeArray> =
{
TXXX: dID
}
The data is quite a bit sparser, plus that "dID" bit sort of looks like a malformed version of the "adID" string. What I really want is to be able to retrieve the ad url.
How can I get the other data like my web player is seeing?
Thanks,
Ron
3 REPLIES 3
rbenditt
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2016
09:00 AM
Re: Getting Data from ID3 Tags
I still haven't gotten anywhere on this. My conclusion, for the moment, is that there are several versions of ID3 tags, all with different formats, and that Roku does not support the data structure that I am sending to it. If anyone has any other thoughts on this, I would be very interested in hearing them.
Thanks,
Ron
Thanks,
Ron


Roku Employee
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2016
11:28 AM
Re: Getting Data from ID3 Tags
"rbenditt" wrote:
I still haven't gotten anywhere on this. My conclusion, for the moment, is that there are several versions of ID3 tags, all with different formats, and that Roku does not support the data structure that I am sending to it. If anyone has any other thoughts on this, I would be very interested in hearing them.
Thanks,
Ron
If you can provide an example stream, and/or information about how the stream was authored, I can file a ticket for it to be investigated.
rbenditt
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2016
10:00 PM
Re: Getting Data from ID3 Tags
I can provide some additional information. I'm implementing a method that Wowza and JWPlayer have been jointly teaching on their webinars. The idea is that after installing a Java plugin into Wowza, you can send http post messages to Wowza whenever you want an ad to be inserted. Wowza then receives this post message and injects an ID3 tag into the stream to act as an ad-break marker. As a partner, JWPlayer has been working with Wowza to implement a web-based player solution where their player detects the ID3 tag and sends a mid-roll ad.
I've pretty much accomplished this using Roku as the player instead of JWPlayer. The only thing is that the ID3 tag gets a bit messed up as mentioned previously. The original implementation sends an ad url way back in the original http post that makes its way into the final ID3 tag in the stream. In my case, I finally decided that I really don't want to transmit an ad URL after all, but it would be nice to at least communicate the ad length to be played. In any event, it looks difficult to retrieve data that is passed in the ID3 tag in this manner from within Roku.
Here's a link to a video tutorial of how this is set up in Wowza:
https://www.wowza.com/forums/content.ph ... ing-Engine
Here's a link to the code, including the Java plugin that takes the http post and injects an ID3 tag into the stream:
https://github.com/WowzaMediaSystems/ws ... -insertion
At this point I can inject ID3 tags, they can be detected by my Brightscript code in Roku, and I can use that to trigger a mid-roll ad. Pretty sweet! The only piece that is missing is that I can't seem to get data to pass through that I can use to determine how long the ad should be. It would be super awesome to be able to schedule ads of differing lengths. To accomplish this, all that would be needed is a way to read that data coming from the ID3 tag.
I do have a stream running currently that has these ID3 tags in it, but it is not released to the public yet. I could supply a link to it off-forum if it helps.
Thanks,
Ron
I've pretty much accomplished this using Roku as the player instead of JWPlayer. The only thing is that the ID3 tag gets a bit messed up as mentioned previously. The original implementation sends an ad url way back in the original http post that makes its way into the final ID3 tag in the stream. In my case, I finally decided that I really don't want to transmit an ad URL after all, but it would be nice to at least communicate the ad length to be played. In any event, it looks difficult to retrieve data that is passed in the ID3 tag in this manner from within Roku.
Here's a link to a video tutorial of how this is set up in Wowza:
https://www.wowza.com/forums/content.ph ... ing-Engine
Here's a link to the code, including the Java plugin that takes the http post and injects an ID3 tag into the stream:
https://github.com/WowzaMediaSystems/ws ... -insertion
At this point I can inject ID3 tags, they can be detected by my Brightscript code in Roku, and I can use that to trigger a mid-roll ad. Pretty sweet! The only piece that is missing is that I can't seem to get data to pass through that I can use to determine how long the ad should be. It would be super awesome to be able to schedule ads of differing lengths. To accomplish this, all that would be needed is a way to read that data coming from the ID3 tag.
I do have a stream running currently that has these ID3 tags in it, but it is not released to the public yet. I could supply a link to it off-forum if it helps.
Thanks,
Ron