YouTube Analytics vs YouTube Data API Discrepancy - youtube-api

I've been using the YouTube Analytics API (I'm using the Java library), to retrieve analytics data for a YouTube Channel - I've been filtering the API calls to specific videoIDs.
However the data for the same date range, when I look in YouTube Analytics (the web interface) seems to differ.
Data from the YouTube Web Interface:
Data from the API:
Does anyone have an explanation for this ?

It says from this SO post that it is an intended behavior of both the API and the Youtube Analytics web interface.
To support this similar post, based from the documentation - How video views are counted:
If you're looking at a video you uploaded, you can monitor your views
more closely using YouTube Analytics. However, keep in mind that the
Realtime report only shows estimates of potential view activity and
might not match the number you see on the watch page.
Also, there are called Frozen View Count where on some videos, the view count might seem frozen or not show all the views that you expect. Video views are algorithmically validated to maintain fair and positive experiences for content creators, advertisers, and users. To verify that views are real and accurate, YouTube may temporarily slow down, freeze, or adjust the view count, as well as discard low-quality playbacks.

Related

YouTube API derived data

I'm working on a application which would gather YouTube user's video data and create some meaningful data and metrics to help the creators market their videos better and expand their audience.
The problem is that since December 18, if I'm not wrong, this kind of practice is forbidden.
Can someone from Google comment and explain this change? Why can't I create metrics based on YouTube data, even if I visibly communicate that this is not data from YouTube?
For example: I would like to fetch users video description and tell what's the keyword density, how well is it prepared for SEO (in % or something).
And I guess that this new term destroys many businesses which are doing exactly that thing, creating meaningful data based on YouTube API. (Tubular, TubeBuddy, VidIQ).
Please! Anyone?

Embedded Youtube video player vs html5/flash video player in web application

Many web application which have videos to show. For example The New Boston uses the embedded Youtube player. Is there any advantage using embedded Youtube video player over implementing our own.
Pros:
No need to pay for hosting and content delivery
Allows for quickly bootstraping new ideas
Youtube makes content much more discoverable. Users watching similar content will be recommended your content as well. In this way they can find about your service.
Cons:
No way to differentiate between paying and non-paying customers. What if you want to offer premium content to your paying customers?
Youtube takes the lions share of any advertising revenue.
No UI customization.
Sometimes youtube censors things they don't want for whatever reason.
If your website offers its users to leave comments or a "like" button then users may get confused over which comments to use - the ones in youtube or the ones in your website.
Support for live broadcasting is a not as good.
The main advantage to using the youtube player is that you have access to their servers to stream the video as opposed to whatever hosting server you are using. Realistically you have the same control over how it appears within the page either way. Just keep in mind you will need to deliver multiple file types if you go the HTML5 video tag route.

YouTube Content ID API - Views and earnings per asset

Assuming that I'm quite new to the YouTube Content ID API (and in general to YouTube Content ID), i'm looking for a method for get quickly the views and the earnings of a single asset.
Analyzing the YouTube Analytics API, I have not found anything making reference to the assets,
then I tried to base myself on the claims to obtain the data which I need. It's work, but, having to walk multiple pages, this takes many requests to the YouTube API server and it responds really slowly.
I would like, in practice, achieve a similar result:
I'm using PHP for this, but I do mostly GET requests directly basing on the documentation of YouTube Content ID API
I've found the solution:
Using the Youtube Analytics API:
ids=contentOwner==MY_CONTENT_OWNER_ID
start-date=my_start_date
end-date=my_end_date
metrics=estimatedMinutesWatched,averageViewDuration,averageViewPercentage, views,subscribersGained
dimensions=video
filters=claimedStatus==claimed
max-results=10
sort=-views
I can obtain the top 10 videos claimed sorted by views.
With the video ids, I can get the views, the earnings and the asset id using the ClaimSearch reference in YouTube Content ID API I can find the rest of the informations that I need.
EDIT:
There is a dimension missed on the official documentation: asset.
I've updated the query of Analytics API:
ids=contentOwner==MY_CONTENT_OWNER_ID
start-date=my_start_date
end-date=my_end_date
metrics=estimatedMinutesWatched,averageViewDuration,averageViewPercentage, views,subscribersGained
dimensions=asset
filters=claimedStatus==claimed
max-results=10
sort=-views
and it show directly the assets.

Getting curated content using streaming API

I cam across one third party API which provides organized twitter data as per user request.
example
http://api.frrole.com/v1/curated-content?location=India&contenttype=link&category=sports&orderby=popularity&minrt=10&resultcount=100&apikey=4534sdg34343
It give top 100 tweets from india, which contains link in tweets and falling into sports category and having minimum rt count =10.
Can someone tell me how does this work? It gives json data as result. Does this result comes directly via twitter streaming APIs or third party's own data base?
Is there any way for streaming API to do this?
This is likely coming from their database. They are consuming the data from the Streaming API or another API and then applying their categorization to it, then giving you the ability to access it from an API.
Some of the criteria above you could get from the Streaming API such as the filter_level (to find top Tweets) but you wouldn't be able to get that whole set of requirements (especially the sports categorization).

How do I retrieve cumulative views using the YouTube APIs?

I can't find anything on the web or the API docs for how to retrieve the very simple graph that shows up when you check the stats of a YouTube video right on the video page; that is, when you click the "Video Statistics" button to the right of the View Count on a video.
I just want a graph that starts at 0 views when the video was first uploaded to the number of views now; it should increase cumulatively with time. Anyone know how to get this?
Note -- I don't want data broken down per day (I'm aware of the new Analytics API).
The newly public YouTube Analytics API should allow you to get that sort of data (views broken down by day over a period of time).
https://developers.google.com/youtube/analytics/

Resources