前回はYouTubeのデータ取得をどのようにすれば良いのか?という事を纏めた記事を書きました。
今回は調べた結果に基づいて、Xamarin.FormsでYouTube Data APIとPlugin.YouTubeを使って実際にデータを取得出来るのかを検証してみます。
ダウンロード

この記事で記述しているコードをGitHubにアップロードしたのでご自由にお使いください。
前回の記事
YouTubeからデータを取得してみる

前回もリンクを貼りましたが、このサイトを参考にしています。
大まかな流れ
- Google API ConsoleでYouTube Data APIのAPIキーを取得
- Visual Studioで新しいXamarinのプロジェクトを作成
- Plugin.YouTubeをnugetから取得
- AndroidとiOSにModel・View・ViewModelにクラスファイルが追加されることを確認後、そのファイルをPCLに纏める
- デバッグ実行。晴れてデータ表示( ˇωˇ )
1.YouTube Data APIのAPIキーを取得

最新の情報じゃにゃいが、以下のサイトを参考にしたのにゃ~。
2.新しいXamarinのプロジェクトを作成

Xamarinのプロジェクトを作成するのにゃ~。ここではプロジェクト名をYouTubeDemoとするにゃ~。
3.Plugin.YouTubeをnugetから取得

ソリューションを右クリック>ソリューションのNugetパッケージの管理をクリックするとNugetからライブラリをダウンロードできるのにゃ~。

参照タブの検索バーにPlugin.YouTubeと入力すると以下の様になるにゃ~。インストールするにゃ~。

なん…だと…。

Nugetからダウンロードしているのにライブラリのバージョンを合わせてくれない…だと…?

とりあえずMicrosoft.Bcl.BuildをNugetから取得するのにゃ~。

Microsoft.Bcl.Buildの最新を取得してからPlugin.YouTubeを取得すれば上手くいくのにゃ~。
4.AndroidとiOSにModel・View・ViewModelにクラスファイルが追加されることを確認

Plugin.YouTubeを取得すると自動的にModel・View・ViewModelが追加されるのにゃ~。
Android | iOS |
![]() | ![]() |
5.Model・View・ViewModelをPCLに纏める

AndroidとiOSにファイルが追加されたは良いが、どっちも同じ内容なのにゃ~。それならば、以下の様にPCLに纏めてしまうのにゃ~。

Viewに関してはXamlを追加するのにゃ~。(レイアウトなのにクラスファイルにべた書きする意味がわからない)

整形したXamlを書いておきますね。コピペでおk

PCLにファイルを追加したらAndroidとiOSからはファイルを削除しておくのにゃ~。
6.App.xaml.csをYouTubeViewPageに書き換える

App.xaml.csのMainPageをPCLに追加したYouTubeViewPageに書き換えるのにゃ~。

AndroidのMainActivity.csやiOSのAppDelegate.csも同様に、LoadApplicationメソッド内で生成するインスタンスをAppクラスにすればおk
7.デバッグ実行

冒頭で取得したAPIをViewModelに記述すると以下の様にデータが取れてくるのにゃ~。
Android | iOS |
![]() | ![]() |
うまく実行できない場合の対処法

なんかうまく動かんなー?という時の対処法です。
HttpClientのインスタンスが生成出来ない場合

System.Net.HttpをNugetから取得するのにゃ~。
JsonConvert.DeserializeObjectメソッドが使用出来ない場合

Microsoft.CSharpをNugetから取得するのにゃ~。
Newtonsoft.Jsonのアセンブリ参照が出来ない場合

Newtonsoft.Json (または、Json.net)をNugetから取得するのにゃ~。
まとめ
- Xamarin.FormsでもYouTube Data APIとPlugin.YouTubeを使えばYouTubeからデータを引っ張ってこれる
- Plugin.YouTubeのダウンロード前後が少し面倒
- AndroidでもiOSでも動作することを確認

冒頭でも載せましたが、今回の記事のコードは以下に纏めているのでどうぞ。
[…] Xamarin.FormsでYouTube Data APIとPlugin.YouTubeを使ってみる […]