HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

YouTubeに動画をアップロードしてみよう

スポンサーリンク

と、思った。 とりあえず、スクリプト集めだな。そかそか、APIのデベロッパーキーが必要ね? ん?クライアントIDってなんだっけ? この辺りは簡単に探せそうだな。 my $developer_key = ‘xxxxxx’; my $client_id = ‘xxxxxx’;   ダウンロードして、タイトルつけてアップロードってことになるな。   なるほど・・・このスクリプトは、ファイル名を渡してやれば、アップロードしてくれるのか。 結構よさげだね。   ダウンロードもスクリプトで処理したいな、探してみる。   d.hatena.ne.jp/shakemid/20081221/1229868522
#!/usr/bin/perl

# YouTube upload

use strict;
use warnings;
use utf8;

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common;
use IO::All;
use Getopt::Long;
use Jcode;

# usage
sub usage {
	print <<EOM;
Usage: $0 [option(s)] filename

Options:
    -t, --title        title         (default: filename)
    -d, --description  description   (default: filename)
    -k, --keywords     keywords      (default: filename)
    -c, --category     category      (default: People)
    -m, --ctype        content-type  (default: video/x-flv)
EOM

	exit 1;
}

# account settings
my $username      = 'username';
my $password      = 'password';
my $developer_key = 'xxxxxx';
my $client_id     = 'xxxxxx';

# video settings
my $title;
my $description;
my $keywords;
my $category;
my $content_type;
my $options = GetOptions(
	"t|title=s"       => \$title,
	"d|description=s" => \$description,
	"k|keywords=s"    => \$keywords,
	"c|category=s"    => \$category,
	"m|ctype=s"       => \$content_type,
) or usage();

$content_type ||= "video/x-flv";
my $filename = shift;
usage() if ! defined $filename;

my $video_detail = video_detail(
    {
        title       => $title       || $filename,
        description => $description || $filename,
        keywords    => $keywords    || $filename,
        category    => $category,
    }
);

my $ua    = LWP::UserAgent->new( keep_alive => 1 );
my $data  = io($filename)->binary->all;
my $token = auth();
upload($token);

sub upload {
    my $token = shift;
    my $url =
      "http://uploads.gdata.youtube.com/feeds/api/users/$username/uploads";
    my $request = HTTP::Request->new( POST => $url );

    $request->header(
        "Authorization"  => "GoogleLogin auth=$token",
        "X-GData-Key"    => "key=$developer_key",
        "X-GData-Client" => $client_id,
        Slug             => $filename,
        Content_Type     => 'multipart/related; boundary=xyzzy',
    );
    $request->add_part(
        HTTP::Message->new(
            [ Content_type => 'application/atom+xml' ],
            $video_detail
        )
    );
    $request->add_part(
        HTTP::Message->new( 
			[ Content_type => $content_type, 
			  'Content-Transfer-Encoding' => 'binary' ], 
			$data ) );

    my $response = $ua->request($request);
    die $response->status_line unless ( $response->is_success );
    print $response->content;
}

sub auth {
    my $request = POST(
        "https://www.google.com/youtube/accounts/ClientLogin",
        Content_Type => 'application/x-www-form-urlencoded',
        Content      => [
            Email   => $username,
            Passwd  => $password,
            service => "youtube",
            source  => "uploads",
        ],
    );
    my $response = $ua->request($request);
    die $response->status_line unless ( $response->is_success );
    $response->content =~ /Auth=(.*?)\n/;

    return $1;
}

sub video_detail {
    my $param = shift;
    foreach my $key ( keys %$param ){
        #utf8::encode($param->{$key}) if utf8::is_utf8($param->{$key});
        $param->{$key} = Jcode->new( $param->{$key} )->utf8;
    }
    my $title       = $param->{title}       || die "title is required";
    my $description = $param->{description} || die "description is required";
    my $keywords    = $param->{keywords}    || die "keywords is required";
    my $category    = $param->{category}    || "People";

    my $video_detail = << "XML";
<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
 xmlns:media="http://search.yahoo.com/mrss/"
 xmlns:yt="http://gdata.youtube.com/schemas/2007">
    <media:group>
    <media:title type="plain">$title</media:title>
    <media:description type="plain">$description</media:description>
    <media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">$category</media:category>
    <media:keywords>$keywords</media:keywords>
  </media:group>
</entry>
XML

   return $video_detail;
}

スポンサーリンク

関連記事

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策 カラフルボックスでPerlでMySQLにアクセスできないときの対策カラフルボックスでPerlでMySQLにアクセスできない!エラーメッセージは、mysql のドライバーがない。こんなメッセージが返って

MW WP FORM のフックが効かない。

MW WP FORM のフックが効かない。 MW WP FORM のフックが効かない。MW WP FORM は、各種フックがあってカスタマイズが便利~とか言われているプラグインですが。。。マニュアルにはあるのにフックが効かないフックがかなりある

MW WP FORM のショートコードで出力される内容をカスタマイズする。

MW WP FORM のショートコードで出力される内容をカスタマイズする。 MW WP FORM のショートコードで出力される内容をカスタマイズしたくなりました。非表示フィールド type=”hidden” にデータをためておいて、それをメール送信する

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所 WelCart 買い物かごのカスタマイズするとき、毎回テンプレートファイルを探すのでメモしておきます。WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所WelCart 買い物かごのカ

WelCart で投稿ページに商品購入欄を作る

WelCart で投稿ページに商品購入欄を作る WelCart の商品ページは、ご存知んごとくウルトラダサい。これをカスタマイズしないとなんとも素人っぽさの抜けないサイトになってしまう。WelCart で投稿ページに商品購入欄を作るときのモジュール

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲