Add get_song
This commit is contained in:
45
YTMusicAPI/Mixins/BrowsingMixin.pm
Normal file
45
YTMusicAPI/Mixins/BrowsingMixin.pm
Normal file
@@ -0,0 +1,45 @@
|
||||
package YTMusicAPI::Mixins::BrowsingMixin;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Moose::Role;
|
||||
|
||||
use YTMusicAPI::Helpers;
|
||||
use YTMusicAPI::Navigation;
|
||||
use YTMusicAPI::Parsers::Browsing;
|
||||
use YTMusicAPI::Continuations;
|
||||
|
||||
sub get_song {
|
||||
my ( $self, $video_id, $signature_timestamp ) = @_;
|
||||
|
||||
my $endpoint = "player";
|
||||
if ( !$signature_timestamp ) {
|
||||
$signature_timestamp = time() - 1;
|
||||
}
|
||||
|
||||
my $params = {
|
||||
"playbackContext" => {
|
||||
"contentPlaybackContext" =>
|
||||
{ "signatureTimestamp" => $signature_timestamp }
|
||||
},
|
||||
"video_id" => $video_id,
|
||||
};
|
||||
|
||||
my $response = $self->_send_request( $endpoint, $params );
|
||||
my @keys = (
|
||||
"videoDetails", "playabilityStatus",
|
||||
"streamingData", "microformat",
|
||||
"playbackTracking"
|
||||
);
|
||||
|
||||
foreach my $k ( keys %$response ) {
|
||||
unless ( grep { $_ eq $k } @keys ) {
|
||||
delete $response->{$k};
|
||||
}
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -6,6 +6,7 @@ use warnings;
|
||||
use Moose;
|
||||
|
||||
with
|
||||
'YTMusicAPI::Mixins::BrowsingMixin',
|
||||
'YTMusicAPI::Mixins::SearchMixin',
|
||||
'YTMusicAPI::Mixins::PlaylistMixin';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user