Skip to content

Instantly share code, notes, and snippets.

@nikgoy
Forked from sheharyarn/YoutubeDownloader.md
Created September 5, 2021 21:52
Show Gist options
  • Save nikgoy/296259264ba1c5691377d85e19bbbccf to your computer and use it in GitHub Desktop.
Save nikgoy/296259264ba1c5691377d85e19bbbccf to your computer and use it in GitHub Desktop.
Download Videos from Youtube in (Ruby || PHP)
<?php
// Download Videos from Youtube in PHP
// By: Sheharyar Naseer
$id = 'RllJtOw0USI'; // just in case
if (isset($_GET["id"]))
$id = $_GET["id"];
parse_str(file_get_contents('http://www.youtube.com/get_video_info?video_id='.$id), $video_data);
$streams = $video_data['url_encoded_fmt_stream_map'];
$streams = explode(',',$streams);
$counter = 1;
foreach ($streams as $streamdata) {
printf("Stream %d:<br/>----------------<br/><br/>", $counter);
parse_str($streamdata,$streamdata);
foreach ($streamdata as $key => $value) {
if ($key == "url") {
$value = urldecode($value);
printf("<strong>%s:</strong> <a href='%s'>video link</a><br/>", $key, $value);
} else {
printf("<strong>%s:</strong> %s<br/>", $key, $value);
}
}
$counter = $counter+1;
printf("<br/><br/>");
}
// start server and go to http://url/?id=video-id
?>
# Download Videos from Youtube in Ruby
# By: Sheharyar Naseer
require 'open-uri'
require 'cgi'
def tube(id)
'http://youtube.com/get_video_info?video_id=' + id
end
def get_video_data(id)
CGI.parse open(tube(id)).read
end
def get_video_streams(id)
streams = get_video_data(id)['url_encoded_fmt_stream_map'].first.split(',')
streams.map do |s|
x = CGI.parse s
x.each do |k,v|
if k == 'type'
x[k] = v.first.split('; ')
else
x[k] = v.first
end
end
end
end
# Get Videos
video_id = "ekz-FY_MDGA"
streams = get_video_streams(video_id)
puts "### Total #{streams.count} streams available:\n\n"
streams.each_with_index do |s,i|
puts "Stream #{i+1}",
"-------------",
"Quality: #{s['quality']}",
"Type: #{s['type'].first}",
"URL: #{s['url'][0..70]}......\n\n"
end
puts "(Modify the code to get full urls)"

Youtube Downloaders

Download Youtube Videos using Ruby or PHP

Just copy the appropriate script, provide the video_id and run. It will list download links for different qualities and streams.

:P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment