ブログ

Blog

cc_lang_pref=enは何故使えなかったのか

YouTubeで動画をアップするようになってから1カ月ほど経った。コンテンツはそこそこ増えたけれど、YouTubeにはYouTubeの独特の世界があるようで、なかなか慣れない。今日も、つまらないことで調べものに時間が掛かってしまった。

ことの起こりは、「YouTube動画に英語字幕を付けよう」と思い立ったことだった。折角作った動画だし、他言語の利用者にも利用してもらえるかもしれない。既に日本語のテキストは作ってあるし、会話文だから翻訳も苦ではない。そう思って、書斎シリーズの第一回を英訳してみた。

最初に困ったのは、翻訳文の入力には、書き起こし文を入力して自動でタイミングを設定してくれる機能がないことだった。YouTube(Google)にとっても、そのハードルは高いということなのだろう。ちょっと手間だが、日本語に対応した英文を一文一文コピペするという手作業が生じた。まあ、元々自分で作った文章だから、切り分けるのはそれほど手間ではない。無事、英語の字幕が入力できた。

問題は、それをウェブサイトに張り付ける際に生じた。私は、自分のウェブに動画のURLを張るときには、字幕表示のオプションをオンにしておく。折角入力した字幕が見てもらえないと悲しいし、字幕をオフにしている人がわざわざオンにはしないものだ。幸い、YouTubeの埋め込みには、様々なパラメータが用意されている。この中で、「字幕を表示する」という cc_load_policy というパラメータを利用している。常に、動画のURLの後に「?cc_load_policy=1」と書き加えて、WordPressの編集画面で埋め込みを指定すれば、常に字幕はオンになる。

問題は、どんな言語の字幕が出るかだが、基本的にそのユーザがデフォルト設定している字幕が出るようだ。とはいえ、日本語と英語以外の言語を設定しているときの挙動は明確ではない。英語版を作ったと表示するウェブ画面には、「字幕を英語で表示する」としたいと考えた。

調べてみると、字幕の言語を指定するバラメータもある。このサイトによれば、「?cc_load_policy=1&cc_lang_pref=en」と指定すれば、英語(en)での表示をすると書かれている。日本語(jp)など、言語の二文字コード(ISO 639-1)を指定すればいいらしい。

ところが、このパラメータをURLに追加してWordPressの編集画面で埋め込みを行っても上手くいかない。何回も試したが、埋め込みそのものがエラーとなることも多く、元のYouTube動画のURLが救済されても字幕言語の指定部分はエラーとなり、動画は映っても字幕も日本語のまま変更されなかった。

どうやら、この cc_lang_pref というパラメータに、サードパーティの埋め込みツールが対応していないようだ。しかし、YouTubeがパラメータに反応しないわけではない。素のURLとして「http://www.youtube.com/embed/〇〇〇〇?cc_load_policy=1&cc_lang_pref=en」というリンクを張れば、WordPressからでも字幕言語の指定が機能することは確認できた。

それなら、埋め込みではなく、動画の冒頭画像を貼り付け、そこにリンクを張ればいいと気が付いて、作ったのがこのページである。中のリンクを辿れば、指定した英語で字幕が表示されるように作ってみたので、ご確認いただきたい。

URLに「?」や「&」でパラメータを書き加える方法は広く普及しているけれど、内部の作りこみとして各々のサービス提供者が勝手に指定し、それを勝手に解析して使っているのが実態のようだ。提供者側が随時仕様を変更して前のリンクが死んでしまったり、今回のようにサードパーティ側の対応ができていないケースもある。発展途上の技術だから、ある程度の変遷があるのは仕方ないが、中途半端な状態が続くと、それを前提としたデジタル資産が蓄積されてしまって、後で変えたくても変えられなくなる。

この辺の標準化はインターネットの世界ではボランティアが担ってきたのだけれど、元々標準化と技術革新が対立することも少なくなかった。いちユーザとして比較的新しい分野を経験してみて、古くからの課題が解決されていないことを改めて実感することとなった。