package WWW::FairViewer::Playlists; use utf8; use 5.014; use warnings; =head1 NAME WWW::FairViewer::Playlists - Fair playlists handle. =head1 SYNOPSIS use WWW::FairViewer; my $obj = WWW::FairViewer->new(%opts); my $info = $obj->playlist_from_id($playlist_id); =head1 SUBROUTINES/METHODS =cut sub _make_playlists_url { my ($self, %opts) = @_; if (not exists $opts{'part'}) { $opts{'part'} = 'snippet,contentDetails'; } $self->_make_feed_url( 'playlists', pageToken => $self->page_token, %opts, ); } sub get_playlist_id { my ($self, $playlist_name, %fields) = @_; my $url = $self->_simple_feeds_url('channels', qw(part contentDetails), %fields); my $res = $self->_get_results($url); ref($res->{results}{items}) eq 'ARRAY' || return; @{$res->{results}{items}} || return; return $res->{results}{items}[0]{contentDetails}{relatedPlaylists}{$playlist_name}; } =head2 playlist_from_id($playlist_id) Return info for one or more playlists. PlaylistIDs can be separated by commas. =cut sub playlist_from_id { my ($self, $id, $part) = @_; $self->_get_results($self->_make_playlists_url(id => $id, part => ($part // 'snippet'))); } =head2 playlists($channel_id) Get and return playlists from a channel ID. =cut sub playlists { my ($self, $channel_id) = @_; $self->_get_results( $self->_make_playlists_url( ($channel_id and $channel_id ne 'mine') ? (channelId => $channel_id) : do { $self->get_access_token() // return; (mine => 'true') } ) ); } =head2 playlists_from_username($username) Get and return the playlists created for a given username. =cut sub playlists_from_username { my ($self, $username) = @_; my $channel_id = $self->channel_id_from_username($username) // $username; $self->playlists($channel_id); } =head2 my_playlists() Get and return your playlists. =cut sub my_playlists { my ($self) = @_; $self->get_access_token() // return; $self->_get_results($self->_make_playlists_url(mine => 'true')); } =head1 AUTHOR Jesus, C<< >> =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc WWW::FairViewer::Playlists =head1 LICENSE AND COPYRIGHT Copyright 2013-2015 Trizen. Copyright 2020 Jesus E. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see L. =cut 1; # End of WWW::FairViewer::Playlists