RStudioでYouTubeを流してみる

kazutan

2017/01/21

自己紹介

icon

どうにかしたかったこと。

  • 作業用BGMがないと無理
    • 集中したい場合,私には必須
    • 最近はYouTubeでひたすらお気に入りを垂れ流す
  • RStudioは画面を専有
    • できるだけ大きな画面で作業したい
    • ラップトップだといちいちウィンドウを出したり下げたり
    • てか作業してたら動画みれん

どうすればいい?

  • ウィンドウをtear(切り離す)
    • 画面を有効活用できる
    • 実際よくやってる
    • でも本体と分かれてるからそれはそれで面倒
  • タブレットなど活用
    • 普段のデスク状況
    • でも出先では不便

RStudio上で流せばいいんじゃね?

Studio Addinでは?

  • ダイアログボックスで表示する
    • 出すことはできた
    • でも再生中はconsoleがListening…
    • これでは意味がない

fig1

Rmdに埋め込んでKnit-Viewerでは?

  • Rmdに埋め込んでViewerに表示する
    • 試しにjsコピペ駆使して実装してみた
    • これならconsole使える
    • でも違うmovieにするにはRmd書換&knit
    • 全く実用的じゃない

fig2

埋め込まれたhtmlを生成してViewerに表示?

  • urlを与えたら,いい感じにhtmlを生成
  • そのhtmlをviewerに表示させるようにすればいいんじゃね?
    • consoleにコマンド入力すれば再生してくれる
    • 自由に作業もできる
    • たぶん,これが一番いい感じ
  • 前2つの技術でいけるんじゃね…?

関数つくってみた

tubeplay <- function(url = "https://www.youtube.com/watch?v=iOFZKwv_LfA", 
                     width = "560", height = "315", background = "white",
                     viewer = getOption("viewer", utils::browseURL)) {
  # make video_id
  video_id <- gsub("^.*\\?v=", "", url)
  # make_ui
  ui <- miniUI::miniPage(
    htmltools::tags$iframe(width = width, height = height,
                src = paste("https://www.youtube.com/embed", video_id, sep = "/"),
                frameborder="0")
  )
  htmltools::html_print(ui)
}

Yeah!!!!!!!

year1

引数

url
YouTubeのurl。embedの方ではないので注意。
width
表示させる横幅。おすすめは“100%”
height
表示させる高さ。適当に。
background
背景色。適当に。
viewer
viewerを選択。詳しくは?htmltools::html_printを参照

(とりあえず)パッケージ化だ

課題と展望

3,4時間で飲みながら作ったからザルです…。

  • 全環境対応ではない
    • ブラウザのプラグインがらみはちょっと…
  • チャンネルとかは?
    • そのうち対応したい
  • 他のストリームは?
    • 認証通したりするのが面倒なので保留

Contributor,およびアイデア募集してます

Enjoy!

  • devtools::install_github("kazutan/tubeplayR")
  • library("tubeplayR")
  • tubeplay()