From 702e427ef149414deba478e9b9f522fb48538056 Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Sat, 9 Jan 2021 04:06:55 +0100 Subject: [PATCH] Added youtube support at webpage. --- bin/peertube-dl-web | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/bin/peertube-dl-web b/bin/peertube-dl-web index fe8180a..1bedec1 100755 --- a/bin/peertube-dl-web +++ b/bin/peertube-dl-web @@ -16,10 +16,20 @@ get '/' => sub { post '/api' => sub { my $c = shift; - my $url = $c->req->json->{url} - // ( return $c->render( text => 'Malformed request due missing url json parameter.', status => 400 ) ); + my $url = $c->req->json->{url} // ( + return $c->render( + text => 'Malformed request due missing url json parameter.', + status => 400 + ) + ); my $render_returned; - eval { $render_returned = $c->render( json => Peertube::DL::URLHandler::getDownloadDataFromURL($url) ); }; + eval { + $render_returned = $c->render( + json => Peertube::DL::URLHandler::getDownloadDataFromURL( + $url, { format => 18 } + ) + ); + }; if ($@) { return $c->render( text => $@, status => 500 ); } @@ -28,9 +38,15 @@ post '/api' => sub { post '/proxy_to_get' => sub { my $c = shift; - my $url = $c->req->json->{url} - // ( return $c->render( text => 'Malformed request due missing url json parameter.', status => 400 ) ); - die "Not supported url" unless $url =~ s/^https:\/\///r =~ /^storage\.googleapis\.com/; + my $url = $c->req->json->{url} // ( + return $c->render( + text => 'Malformed request due missing url json parameter.', + status => 400 + ) + ); + die "Not supported url" + unless ( $url =~ s/^https?:\/\///r =~ /^storage\.googleapis\.com/ + || $url =~ s/https?:\/\///r =~ s/\/.*$//r =~ /googlevideo\.com$/ ); my $ua = Peertube::DL::URLHandler::generateUA(); return $c->render( data => $ua->get($url)->decoded_content, @@ -38,8 +54,10 @@ post '/proxy_to_get' => sub { ); }; -push @{ app->renderer->paths }, ( Peertube::DL::getDir() . '/Peertube/DL/templates' ); -push @{ app->static->paths }, ( Peertube::DL::getDir() . '/Peertube/DL/public' ); +push @{ app->renderer->paths }, + ( Peertube::DL::getDir() . '/Peertube/DL/templates' ); +push @{ app->static->paths }, + ( Peertube::DL::getDir() . '/Peertube/DL/public' ); my $config = plugin 'Config';