I have seen multiple sites that use direct link from youtube.
For example, for this youtube link :
https://www.youtube.com/watch?v=yY6ex5Dqkks
the direct link for quality 720p is :
http://r12---sn-n4v7kne7.c.docs.google.com/videoplayback?sparams=dur,expire,id,initcwndbps,ip,ipbits,itag,lmt,mime,mm,mn,ms,mv,nh,pl,ratebypass,source,upn&key=cms1&mime=video%2Fmp4&fexp=9416126%2C9416891%2C9420452%2C9422596%2C9423662%2C9427902%2C9428399&expire=1459599509&ipbits=0&upn=99USaJ1LnkA&dur=30.093&pl=48&lmt=1459568922521937&signature=63FE6D047E895678BAD75266A901C5ABA672A189.0ABBCAA69A9C69003ED38AC11CC08BBF237BB1B3&itag=22&source=youtube&ip=2604:a880:1:20::1ff:1&ratebypass=yes&id=o-AJMIxtvMFBps0IkCDE5t76_cGObBwaTk_xoexDWKt2c0&sver=3&cms_redirect=yes&mm=31&mn=sn-n4v7kne7&ms=au&mt=1459577754&mv=m&nh=IgpwcjAxLnBhbzAzKgkxMjcuMC4wLjE&utmg=ytap1&title=New%20TV%20Ad:%20%22Nose%22
How can I get this direct link with youtube api v3 or any other.
use https://rg3.github.io/youtube-dl/ with -g. here are some more characters.
You can't get direct link using youtube api, because it is against their terms.
So they won't allow you to get download link using their api.
Content is provided to you AS IS. You may access Content for your information and personal use solely as intended through the provided functionality of the Service and as permitted under these Terms of Service. You shall not download any Content unless you see a “download” or similar link displayed by YouTube on the Service for that Content. You shall not copy, reproduce, make available online or electronically transmit, publish, adapt, distribute, transmit, broadcast, display, sell, license, or otherwise exploit any Content for any other purposes without the prior written consent of YouTube or the respective licensors of the Content. YouTube and its licensors reserve all rights not expressly granted in and to the Service and the Content.
Related
I’ve been doing some research on the YouTube Content ID api and researching about making claims, there is a “manual claim” property, but it’s noted as restricted with semi-minimal information about it.
params.isManualClaim - restricted
https://gist.github.com/esvit/27bc8f26c09c7a3a0c18
My question is, what does restricted actually mean? Is it restricted to only partners that have access to perform manual claims, or is it restricted to everyone and only available to internal YouTube processes?
Anyone have any ideas?
Thank you!
Here is the reason from the documentation.
Note: The YouTube Content ID API is intended for use by YouTube
content partners and is not accessible to all developers or to all
YouTube users. If you do not see the YouTube Content ID API as one of
the services listed in the Google Developers Console, see
www.youtube.com/partner to learn more about the YouTube Partner
Program.
The YouTube Content ID API lets developers build applications that
interact directly with YouTube's rights management system. The system,
which has an online interface at www.youtube.com/content_id ,
enables content owners and administrators to provide YouTube with
metadata, ownership information, and policy information for their
assets.
As a YouTube partner, you can use the API to create new assets and
manage existing assets. You can also retrieve information about your
Content Manager account, including a list of saved policies that you
can apply to your claimed content.
In addition, by combining the YouTube Content ID API with the YouTube
Data API and YouTube Player APIs, you can enable your application to
also upload, manage, and play YouTube videos.
We're working on an integration with youtube channels (using Youtube Data Api v3). We need to access the videos (private also) on our user's channels.
The flow is the following:
User authorizes his/her youtube account on our site using OAuth.
We show user the list of videos on user's youtube channel.
User selects some of them (they can be private) and sends us for processing.
We need to somehow access the actual video files which the user asks us to process.
The issue is that youtube does not give any streaming URLs or download links.
Looks like, the API provides only iframe embedded code, which works ONLY for the browser, where the user is actually logged into youtube.
How can we access(can we?!) the private video, if we have the OAuth access-token of the video owner?
The YouTube Data API lets you incorporate functions normally executed on the YouTube website into your own website or application. The lists below identify the different types of resources that you can retrieve using the API. The API also supports methods to insert, update, or delete many of these resources. This in a sense means that you can see most of what you can see on the YouTube website including uploading new videos.
Downloading Youtube videos is against their Terms of Service, so the API does not support that.
Page linked above refers to Youtube ToS that states:
You shall not download any Content unless you see a “download” or similar link displayed by YouTube on the Service for that Content.
YouTube partners may have access to this feature in their API (no idea i have never seen the api), if you have access to this i suggest you contact your manager directly they should be able to instruct you on how to access it assuming the feature exists.
I'm working on an app that uploads private videos to Youtube to be viewed by everyone at our organization. Luckily, Google and Youtube have an awesome company-wide permission for this, which allows for anyone with an email address within the company to view these videos.
Youtube has 3 options for video privacy status: Public, Unlisted and Private. I'd usually just go with Unlisted and call it a day, but due to the nature of these videos, I'd prefer for them to Private, then manually grant access to the video and share it with everyone at the organization. When done through the Youtube Video Manager page, here is the dialog box I'm looking for an API endpoint for:
Manual Approach
We can go through each video and check this box in each video, but that's not something that scales well. I'd love to find documentation on a Youtube API endpoint that handles this. There's a clear status.privacyStatus attribute for videos that can be set to private, public or unlisted, but nothing for this.
Does anyone know of a Youtube API andpoint to control this permission for private videos on Youtube?
I can back up the assumption from my comment that private video sharing is not possible through the Data API v3 with this article I found on the topic.
The author of the article even provides a workaround to this problem, although I strongly discourage using it, since it requires parsing sensitive account information (password) in PHP. Apart from that, the code is from 2010 and will most likely not work anymore because it is from before YouTube channels were linked to Google+ pages.
I want to know how can I do auto subcribe an account with youtube api v3. Can I it to register with youtube account. For example, some script do auto post share on your twitter account.
I do not personally use YouTube API, but after looking over the YouTube Data API's documenation pages, it seems that the API supports a method to subscribe users to a channel.
The API Overview documentation page states:
A subscription resource contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
You may view all the methods supported by the subscription resource on the subscription resource's documentation page. The method that you would need is called insert. This allows you to automatically subscribe an authenticated user to a specified channel. The insert method's description can be found on its page along with detailed usage examples. The page provides examples in Apps Script, Java, PHP, Python, and Ruby; however this method can be used any programming language which supports the YouTube Data API Client Libraries.
I have Java based website. I would like users to log into my website and then upload videos to youtube using my youtube account. Users should not be required to have their own youtube account since videos will be uploaded using my youtube account.
Does youtube support this scenario?
If so, is there a sample code that shows me how to do this in Java?
I have used UploadVideo.java sample provided by google (https://developers.google.com/youtube/v3/code_samples/java#upload_a_video), but it requires users to log into youtube account using their id and password. That is not my use case.
Please study the terms and conditions of the Youtube service ; I think they do not allow this:
https://www.youtube.com/static?gl=GB&template=terms
YouTube accounts
4.1 In order to access some features of the Website or other elements of the Service, you will have to create a YouTube account. When
creating your account, you must provide accurate and complete
information. It is important that you must keep your YouTube account
password secure and confidential.
4.2 You must notify YouTube immediately of any breach of security or unauthorised use of your YouTube account that you become aware of.
4.3 You agree that you will be solely responsible (to YouTube, and to others) for all activity that occurs under your YouTube account.
and
5.1.L: you agree not to access Content or any reason other than your personal, non-commercial use solely as intended through and permitted
by the normal functionality of the Service, and solely for Streaming.
"Streaming" means a contemporaneous digital transmission of the
material by YouTube via the Internet to a user operated Internet
enabled device in such a manner that the data is intended for
real-time viewing and not intended to be downloaded (either
permanently or temporarily), copied, stored, or redistributed by the
user.
You can not let other people use your YouTube account/channel. The way to do is using YouTube Direct Lite
You basically add a ytdl with playlist tag while uploading videos.
You can check Android Client for how to do it in Java.
As to whether it is technically possible, yes, see https://developers.google.com/youtube/v3/guides/using_resumable_upload_protocol
The technical problem here is users will be able to delete videos too if they have your access token with full permissions. basically you need to:
load your html page with the upload interface.
add to the onclick event of the upload button to send an ajax request to a script on your server which will:
return the access token of your account to the client
soon thereafter change the access token using the refresh token
Its still technically vulnerable though. a possible solution is to obtain the access token ONLY with the scope:
https://www.googleapis.com/auth/youtube.upload
There is a very good chance it will not be vulnerable then. You should test it.