How to get video download link from youtube? - hyperlink

I searched far and wide and came up with nothing.
Ok, that is not completely true, there are in fact tons of solutions on the Internet (even here on stackoverflow) on how to get a download link for youtube video, but not a single one of them is working anymore, since youtube seems keep changing things all the time.
What I want to do, is to write a PHP script which will be able to download video from specified youtube page and then save it on the server in flv or mp4 format.
I can get some video information by downloading this: http://www.youtube.com/get_video_info?&video_id=VIDEO_ID
But thats about it, no matter what I do, I just cannot figure out how find the link pointing to the video download.
I tried to use this link: http://youtube.com/get_video?video_id=VIDEO_ID&t=TOKEN&fmt=18&asv=2 from one more recent solution I found, but either there is something missing in it, or it's completely outdated already too.
So how can I dig out some working link for direct video download from youtube?
There has to be some way to do it, since there are some web pages out there which provide this service.
Thank you for any advices.

I prefer RealPlayer to download videos from youtube and other video sharing sites like metacafe, funnyordie and others. You're able to download in both mp4 or flv format, save them, and view them whenever you'd like.. even if you're not online which is great for travel. http://www.real.com/realdownloader

Related

Generating download link for youtube video with PHP but filename always saving as videoplayback.mp4

I'm tyrying to create a youtube video downloader script for education purpose. Everything is working fine and link generating but the problem is. it is alway's saving the video as videoplayback.mp4 , But i want to save video as the title of youtube video. How can i do that any idea or knowledge will you share with me please ? Thanks in Advance :)
Currently this kind of link generating with my script:
https://r5---sn-ax8xaj5ggpxg-q5je.googlevideo.com/videoplayback?ipbits=0&signature=962BE0E0565BE4A1C47228B9915BCB8F1CFEB960.9F6BB2DB759AEA92819A21B1D7169934E2029F12&key=yt6&itag=18&ratebypass=yes&expire=1493475511&dur=866.382&pl=24&gir=yes&pcm2=yes&sparams=clen,dur,ei,gir,id,initcwndbps,ip,ipbits,itag,lmt,mime,mm,mn,ms,mv,pcm2,pl,ratebypass,requiressl,source,upn,expire&beids=[9466594]&ip=103.250.70.10&lmt=1404765005406941&upn=3jfn7T_trrk&id=o-AIgDAd5Kx005dV22eO8I0kxdhqnMlelHM82MUR6361GG&ei=V0wEWdomgd6jA_7BiQg&initcwndbps=1491250&mn=sn-ax8xaj5ggpxg-q5je&mm=31&requiressl=yes&clen=17929313&mime=video/mp4&source=youtube&ms=au&mv=m&mt=1493453844
I'm adding title with this but it's not downloading video with the title
If you are using PHP to do all your work, then you can rename the file.
You should have the api request info for the video, such as name, id and such. So save the name in a variable and use it to rename the video.
Some basic info HERE to start from.
But you can find plenty of examples around renaming on Stackoverflow
You may user title tag at last of the your url. simply like:
https://r1---sn-npoe7ne6.googlevideo.com/videoplayback?c=xxxxxx&title=THIS+ONE+THING+COMPLETES+YOUR+ENTIRE+SALAH
Example: https://r1---sn-npoe7ne6.googlevideo.com/videoplayback?c=WEB&ei=PbcrXNPYN8j8DbS3g6gJ&signature=7158A95D1D19CE23E5927C5BA269FB93416BE9C3.3013C04B8A60583BE3976207ECC46104DA6231C5&ratebypass=yes&dur=78.135&itag=22&lmt=1546275183213302&key=cms1&expire=1546390430&beids=9466587&sparams=dur,ei,expire,id,ip,ipbits,itag,lmt,mime,mip,mm,mn,ms,mv,pl,ratebypass,requiressl,source&ipbits=0&pl=24&mime=video/mp4&id=o-APHRf9RA8ZFNEcdOCNFsj9WVumGp7BSSD5X3KXyvg0yF&source=youtube&txp=5432432&requiressl=yes&ip=107.178.194.200&fvip=1&extension=mp4&mip=119.30.38.95&redirect_counter=1&cm2rm=sn-bg5hxxo2ivox-q5jz7e&fexp=9466587,23763603&req_id=1d7d8e10b833a3ee&cms_redirect=yes&mm=29&mn=sn-npoe7ne6&ms=rdu&mt=1546368708&mv=m&title=THIS+ONE+THING+COMPLETES+YOUR+ENTIRE+SALAH
Now video will save with
THIS ONE THING COMPLETES YOUR ENTIRE SALAH.mp4
I think it will help you.

Uploading a video to youtube from my swift app

I've been asked to integrate videos into an existing app which previously only let users upload posts with images.
I don't want to host the videos on my own server for the following reasons:
Server Bandwidth
File Size Limits and Storage Space
Slow-Loading Video or Unexpected Pauses During Playback
Issues with converting to specific formats
Piracy
Based off this article:
https://www.wp101.com/10-reasons-why-you-should-never-host-your-own-videos/
So I tried to research into where I could host the files and then I would simply have to store the URL in my db and use a video player to stream the content.
Vimeo and youtube seemed to be the main options I could find.
I'm wondering how best to implement, would I make use of a youtube API and on successful upload, grab the link and upload to my own server? I'm concerned this may be a long process for the end user.
Another problem is I can't see any swift examples (ZERO obj-c experience) of making the http request but perhaps it is still possible but I'd just have to write the code myself? I'm wondering if anyone has implemented anything like this already as I can't find any examples.
Looking at this question:
How do I upload a video to YouTube from within an iOS application?
None of the links in the comments work and the answer directs to the youtube 2.0 API and I'm concerned that this is now deprecated.
Any advice appreciated!

Why the link get from youtube get_video_info doesn't work for download?

I test with browser with the link I get from "http://www.youtube.com/get_video_info?&video_id=xx" to see if it is be able to download.
After remove some parameters from original link, some works but some still don't.
I read some post here but most of are pretty old. A lot of change since then.
I wonder if there are somebody working on this recently.
The purpose I need this is because my youtube view program need a better quality video to display.
This is link doesn't work:
http://r17---sn-tt17rn7e.c.youtube.com/videoplayback?fexp=902529%2C932000%2C906383%2C902000%2C919512%2C929903%2C931202%2C900821%2C900823%2C931203%2C931401%2C908529%2C919373%2C930803%2C906836%2C920201%2C929602%2C930101%2C930603%2C900824%2C910223&ipbits=8&expire=1364854787&sver=3&mt=1364829200&newshard=yes&id=26c94a41dba396f5&key=yt1&upn=GrcnDUPfreQ&cp=U0hVSVhQUl9NUUNONV9QSlZIOm9BbnVkMTJzOXE5&sparams=algorithm%2Cburst%2Ccp%2Cfactor%2Cid%2Cip%2Cipbits%2Citag%2Csource%2Cupn%2Cexpire&ip=173.248.214.165&itag=34&ms=au&source=youtube&mv=m&signature=9593596F58B377FAA4C8F5A4516C7F53CE473340.507CA2EA250CEED2E2B2377FD70EE1A0478EE322&type=video/mp4; codecs="avc1.42001E, mp4a.40.2"&itag=18&
What wrong with it? I removed fallback_path and replace sig with signature.
The working link is for webm. This is for h264. Both have the same kind of parameters.
And this is working now.
http://r17---sn-tt17rn7e.c.youtube.com/videoplayback?fexp=909708%2C912514%2C930802%2C932400%2C916624%2C931009%2C932000%2C906383%2C902000%2C919512%2C929903%2C931202%2C900821%2C900823%2C931203%2C931401%2C908529%2C930807%2C919373%2C906836%2C920201%2C929602%2C930101%2C930603%2C900824%2C910223&ms=au&itag=44&mt=1364825784&ipbits=8&cp=U0hVSVhQT19NUUNONV9QSlNCOlp5ZGoyMXJ3emlq&ip=173.248.214.165&upn=ohH0s8EjPyo&newshard=yes&source=youtube&ratebypass=yes&mv=m&sparams=cp%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&id=26c94a41dba396f5&expire=1364851187&key=yt1&sver=3&signature=798EED35782B846D2B0EA190A17E837A0DBA18EA.AD56BCF6365AAD974C18F09F352F9422084C50AC&type=video/webm; codecs="vp8.0, vorbis"&quality=large,itag=35&
That's not a supported method of interacting with YouTube. You need to use one of the official YouTube Player mechanisms to display YouTube videos.
Please familiarize yourself with the YouTube API Terms of Service if you have any more questions.

Google Drive as a video hosting/streaming platform?

I'm developing an iOS app that generate video files and have a social gallery for users to display their clips. After a lot of research I found that Google Drive would be perfect to fit my needs so I did some testing and sucessfully made the app upload the file to GDrive and everything.
Now I need to stream the uploaded file in a MPMoviePlayerViewController, for that I would need some kind of direct link, I'm right? After my initial tests I used the variable WebContentLink as a source URL and it worked flawlessly, I was really happy with the result, however now it doesn't work anymore, I don't know what happened and I think the method that I used is not realiable? I tried all the other possible links and none of them seems to work.
Can someone give a guidance about if this is really supported by Google Drive and how it's the best way to archive that in a reliable way?
Thank you very much !
I too encounter the same error when I try to download 28 times (testing) the same 24mb file.
However I realise if I am to download using the content owner ID, it does allow downloading after the 28th time
https://docs.google.com/a/onwardsct.com/uc?id=0ByvXJAlpPqQPYWNqY0V3MGs0Ujg&export=download
Sorry, you can't view or download this file at this time.
Too many users have viewed or downloaded this file recently. Please try accessing the file again later. If the file you are trying to access is particularly large or is shared with many people, it may take up to 24 hours to be able to view or download the file. If you still can't access a file after 24 hours, contact your domain administrator.
The experience for streaming files natively is not ideal right now, sorry. It is something Google are working on.
You are doing this correctly though. The webContentLink should use the user's quota, and that should be enough for most cases. If you can give some specific numbers, we can look at it.
The embed link is the best way to show it on a mobile device, but as you say won't work everywhere.
yes, google drive can be used for hosting and stream videos as you like. It can also be used as demo server for web projects. Here is how to host a website on Google drive.

Youtube player for multiple videos from various accounts

I have a page that has many videos on it and the page has become so slow it is unusable. These are all Youtube videos and I changed to the new iFrame tags hoping that would help the loading. I need a solution to make this page more useable.
I would be happy if I could just pull a frame from the video and display that, when clicked it would load the video. Or I would be happy with a multi-video player. The custom play from Youtube will not work because the videos I am serving are not all from my account and as I understand the custom player you reference a group from your account. I have also considered using AJAX to load the iframe, which would be okay too if I could figure out how to get a thumbnail of the video to show as a link.
Ideas and suggestions are welcome. Thanks in advance for any ideas.
YouTube API is made up of 2 different sets - one for the player and one for the data.
You can start here ...
http://code.google.com/apis/youtube/overview.html
... then click on "Data API" link and after looking over that page, click on the "Reference Guide" link.
In essence, the gData API will allow you to get videos in numerous ways (feeds, channels, tops, etc) in chunks of up to 100 videos at a time, using a startIndex (or whatever it may be called) option for paging. What you get is an XML document with parts or everything that YT has about a video, including not one but several different thumbnail images.
HTH helps you and/or another Web 0.2 Fellow (like me)

Resources