Add playlist functions

This commit is contained in:
mschuepbach
2024-03-24 23:34:26 +01:00
parent fe4a7dc49e
commit e3a184aa63
7 changed files with 784 additions and 28 deletions

View File

@@ -4,7 +4,10 @@ use strict;
use warnings;
use Moose;
with 'YTMusicAPI::Mixins::SearchMixin';
with
'YTMusicAPI::Mixins::SearchMixin',
'YTMusicAPI::Mixins::PlaylistMixin';
use JSON;
use LWP::UserAgent;
@@ -124,18 +127,18 @@ sub _send_request {
$additionalParams //= "";
@$body{ keys %{ $self->{context} } } = values %{ $self->{context} };
my $headers = $self->headers();
if ( $self->{_headers} and !exists $self->{_headers}{'X-Goog-Visitor-Id'} )
{
my $visitor_id = get_visitor_id( $self->{_send_get_request} );
$self->{_headers}{'X-Goog-Visitor-Id'} = %$visitor_id;
my $visitor_id = get_visitor_id( $self->_send_get_request(YTM_DOMAIN) );
$self->{_headers}{'X-Goog-Visitor-Id'} = $visitor_id;
}
$self->{_headers}{'Cookie'} = $self->{cookies};
my $request = HTTP::Request->new(
POST => YTM_BASE_API . $url . $self->{params} . $additionalParams );
my $headers = $self->headers();
foreach my $header_name ( keys %$headers ) {
$request->header( $header_name => $headers->{$header_name} );
@@ -155,11 +158,17 @@ sub _send_request {
sub _send_get_request {
my ( $self, $url, $params ) = @_;
$params //= "";
my $response =
$self->{_session}
->get( $url, $self->{_headers} ? $self->headers() : $self->base_headers(),
);
my $request = HTTP::Request->new( GET => $url . $params );
my $headers = $self->{_headers} ? $self->headers() : $self->base_headers();
$self->{_headers}{'Cookie'} = $self->{cookies};
foreach my $header_name ( keys %$headers ) {
$request->header( $header_name => $headers->{$header_name} );
}
my $response = $self->{_session}->request($request);
return $response;
}