2009年10月2日金曜日

GyaO! with Ubuntu

このエントリーをはてなブックマークに追加
Ubuntu(9.04)から直で GyaO! の(DRM 保護下の)動画を視ることは、現時点ではできない。どうできないかというと

まず、素で視ようとすると、対象外の OS ということで、視れない。





ただし、Moonlight(現時点で 1.99.5)アドオンを導入済みならば、Silverlight 3 として認識されているので、後は、User Agent を偽装することで回避できる。

User Agent Switcher アドオンを導入し、OS:Windows XP に偽装。





再読み込み後。



この状態で、視ようとすると、Silverlight アプリをロードする気配をみせるが、結局何も表示されない。



Firefox を端末(Gnome Terminal 等)から起動すると、次のログが表示されていて

...
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotImplementedException: The requested feature is not implemented.
  at yjMediaPlayerClass.yjMediaPlayerUI.LicenseAcquirerInit () [0x00000] 
  at yjMediaPlayerClass.yjMediaPlayerUI..ctor () [0x00000] 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] 
...

これは、Moonlight に含まれる System.Windows(System.Windows.dll)内の System.Windows.Media 名前空間 LicenseAcquirer クラス SetLicenseResponse メソッドが NotImplementedException をスローしている(未実装)のが原因のようだ。System.Windows.Controls 名前空間 MediaElement クラス LicenseAcquirer プロパティの setter が NotImplementedException をスローしている(未実装である)のが原因。


本家 Silverlight では、最終的に P/Invoke で「agcore.dll」内の関数を呼び出して、処理を行っている。

Moonlight 側でこういった DRM がらみの機能を実装するには、「agcore.dll」に相当する Linux 用のライブラリを Microsoft から提供される必要があると思うけど、実際どうなるのだろうか(Microsoft がそんなことをしてくれるのだろうか)。

現時点で Moonlight の DRM がらみの機能は、ほぼ未実装。

そして、今後どのような展開になるのか、実に興味深い。


なんの慰めにもならないけど、Yahoo! JAPAN の DRM 保護下にはない動画を視ることはできる(動画が再生されるまで、再生ボタンを何度かクリックする必要はあったが)。


1 件のコメント:

sta さんのコメント...

例外(NotImplementedException)発生の原因箇所について修正を行いました。

コメントを投稿