NAME
WWW::YouTube - YouTube Developer Interface
SYNOPSIS
use lib ( $ENV{'HOME'} );
use WWW::YouTube::Com; ## SEE DESCRIPTION
Options;
TBD
OPTIONS
TBD
DESCRIPTION
WWW::YouTube is the Public YouTube Development Interface.
WWW::YouTube::Com is your Private YouTube Development Interface.
We need your private user, pass and dev_id defined here.
To use this YouTube Developer Interface, you need to have a YouTube username and password, and you'll need to register with YouTube as a Developer in order to get a Developer ID for the YouTube XMLRPC API.
By the way, you need to go to YouTube at http://www.youtube.com to do your registering, and you must think up a really good excuse for wanting to become a registered YouTube Developer. Something like helping me to develop programs to protect registered teenagers and the General Public, including children, from being exposed to too much adult content and other inappropriate material might work.
http://www.youtube.com/profile?user=ermeyers
Just because a YouTube video has been flagged as inappropriate material for the General Public, doesn't mean that you, as a registered adult, can't watch it. Flagging keeps YouTube registered teenagers, and YouTube's unregistered viewing General Public, including children, from being able to view the contents of a video identified as an inappropriate video.
You'll need to educate yourself a little bit, and experiment with YouTube directly, before going Hog Wild with my YouTube applications, like I do, flagging video after video. That's my purpose for this development project.
http://www.youtube.com http://www.youtube.com/dev
-- So, now about your future YouTube development projects:
$ mkdir ~/WWW
$ mkdir ~/WWW/YouTube
/usr/bin/php $PERLLIB/WWW/YouTube/Com.pm user pass dev_id > ~/WWW/YouTube/Com.pm
-- NOTE: php ...
-- Users/Videos data: XML-RPC Interface demo for this initial testing, training and development environment setup purpose.
$ mkdir ~/youtube
$ mkdir ~/youtube/video ## video application and data directory (We're not storing videos here)
$ GET
http://search.cpan.org/src/ERMEYERS/WWW-YouTube-2006.0606/youtube/video/video.plx
> ~/youtube/video/video.plx
$ chmod +x ~/youtube/video/video.plx
-- It's time for you to see this YouTube Developer API's page: http://www.youtube.com/dev
$ ~/youtube/video/video.plx
WWW::YouTube::XML::API::action{ugp_cache}:
Calling $WWW::YouTube::XML::API::action{ugp_call}
WWW::YouTube::XML::API::action{ulfv_cache}:
Calling $WWW::YouTube::XML::API::action{ulfv_call}
WWW::YouTube::XML::API::action{ulf_cache}:
Calling $WWW::YouTube::XML::API::action{ulf_call}
WWW::YouTube::XML::API::action{vlf_call}:
WWW::YouTube::XML::API::action{vgd_cache}:
Calling $WWW::YouTube::XML::API::action{vlf_call}
Calling $WWW::YouTube::XML::API::action{vgd_call}
WWW::YouTube::XML::API::action{vlbt_cache}:
Calling $WWW::YouTube::XML::API::action{vlbt_call}
WWW::YouTube::XML::API::action{vlbu_cache}:
Calling $WWW::YouTube::XML::API::action{vlbu_call}
WWW::YouTube::XML::API::action{vlf_cache}:
Calling $WWW::YouTube::XML::API::action{vlf_call}
-- What else just happened?
$ ls -1 ~/youtube/video
lwpcookies_username.txt ## your YouTube username cookies
ugp_cache ## ugp = youtube.users.get_profile
ulf_cache ## ulf = youtube.users.list_friends
ulfv_cache ## ulfv = youtube.users.list_favorite_videos
vgd_cache ## vgd = youtube.videos.get_details
video.plx
vlbt_cache ## vlbt = youtube.videos.list_by_tag
vlbu_cache ## vlbu = youtube.videos.list_by_user
vlf_cache ## vlf = youtube.videos.list_featured
-- Look at my YouTube profile returned from the ugp_call and stored in the ugp_cache
$ zcat ~/youtube/video/ugp_cache/ermeyers.xml.gz | more
$ man XML::Dumper
-- OK?
-- And, so now, your ready for my 'tag' application: ( vlbt = youtube.videos.list_by_tag )
-- Let's setup to play videos by 'tag'
-- As your username:
$ mkdir ~/youtube/tag ## tag application directory
-- There will come a very helpful user named apache to play videos by 'tag' with you!
-- NOTE: SELinux causes problems running perl under Apache [ email me, if need be ]
$ chmod -R a+w ~/youtube/video
$ chmod a+w ~/youtube/tag
-- As your root:
# ln -s ~username/youtube /var/www/youtube
# ln -s ~username/WWW /var/www/WWW
# ln -s ~username/youtube /var/www/html/youtube
-- As your username:
$ GET
http://search.cpan.org/src/ERMEYERS/WWW-YouTube-2006.0606/youtube/tag/images/ERMpowered.gif
> ~/youtube/tag/images/ERMpowered.gif
$ chmod a+r ~/youtube/tag/images/ERMpowered.gif
$ GET
http://search.cpan.org/src/ERMEYERS/WWW-YouTube-2006.0606/youtube/tag/tag.php
> ~/youtube/tag/tag.php
$ chmod a+x ~/youtube/tag/tag.php
$ GET
http://search.cpan.org/src/ERMEYERS/WWW-YouTube-2006.0606/youtube/tag/tag.plx
> ~/youtube/tag/tag.plx
$ chmod a+x ~/youtube/tag/tag.plx
$ GET http://localhost/youtube/tag/tag.php ## DOES IT WORK FOR YOU NOW?
-- Security Level Config: /usr/bin/system-config-securitylevel.
-- Try checking "Disable SELinux protection for httpd daemon," so that you can run perl scripts under Apache.
-- Currently I have FC4 Linux, Apache 2.0, and I couldn't do Perl CGI.pm or load mod_perl at all. :(
-- NOTE: ~/youtube/tag/tag.plx works from the command line too, but it's not as much fun that way.
$ ~/youtube/tag/tag.plx '--ml_tag=very nice girl' --html_disarm --html_thumbnail --ml_max_pages=1
$ ls ~/youtube/tag/tag_very_nbsp_nice_nbsp_girl
$ ~/youtube/tag/tag.plx '--ml_tag=very hot girl' --html_columns=3 --ml_per_page=6 --ml_max_pages=5
$ ls ~/youtube/tag/tag_very_nbsp_hot_nbsp_girl
Matthew 3:12, "His winnowing fork is in his hand, and he will clear his threshing floor, gathering his wheat into the barn and burning up the chaff with unquenchable fire." -- NIV
--I've got children, and I developed this program to flag videos as inappropriate material. I run by tag to flag junk videos.
* P : Pornography or Obscenity
* I : Illegal Acts
* G : Graphic Violence
* R : Racially or Ethnically Offensive Content
* S : Submit to YouTube
I'd like your help with this protective flagging effort, on occasion. Thanks.
With regard to the colored Video "Tag" and Video "Author" labels displayed, corresponding to the Video's tags or the Author's username at YouTube:
* Green : Found, and your tag string matched Exactly.
* Yellow : Found, but your tag string matched in a Partial or a Fuzzy way.
* Red : no match found.
I have tag display options for this:
--ml_want=[all|found|not_found] ## What's saved and displayed
--xml_want=[all|found|not_found] ## What's saved
--html_want=[all|found|not_found] ## What's displayed
SEE ALSO
What else is there to see, after seeing some '--ml_tag=very hot girl' on YouTube? You asked...
WWW::YouTube::Com WWW::YouTube::ML WWW::YouTube::XML WWW::YouTube::HTML
AUTHOR
Eric R. Meyers <ermeyers@adelphia.net>
LICENSE
perl
COPYRIGHT
Copyright (C) 2006 Eric R. Meyers <ermeyers@adelphia.net>