Module: YtUtil::URL
- Defined in:
- lib/yt_util/url.rb
Class Method Summary collapse
-
.generate(video_code, options = {}) ⇒ Object
developers.google.com/youtube/player_parameters Recommended included options for embedded video => true, :autoplay => true, :origin => request.env.
- .request(web_request) ⇒ Object
Class Method Details
.generate(video_code, options = {}) ⇒ Object
developers.google.com/youtube/player_parameters Recommended included options for embedded video => true, :autoplay => true, :origin => request.env
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/yt_util/url.rb', line 6 def self.generate(video_code, = {}) raise "Invalid object type" unless video_code.is_a? String raise "Invalid video code" unless video_code.length == 11 .default = false parameters = "?" parameters.define_singleton_method(:ingest) {|item| self.<<("&") unless self[-1]["?"]; self.replace self.<<(item) } parameters.ingest("autoplay=1") if [:autoplay] if [:showplay] parameters.ingest("autohide=2") elsif [:autohide] parameters.ingest("autohide=1") elsif [:nohide] parameters.ingest("autohide=0") end parameters.ingest("cc_load_policy=1") if [:cc] parameters.ingest("color=white") if [:color] and ![:modestbranding] parameters.ingest("controls=0") if [:nocontrols] parameters.ingest("disablekb=1") if [:nokeyboard] parameters.ingest("enablejsapi=1") if [:jsapi] parameters.ingest("end=#{[:end]}") if [:end] parameters.ingest("fs=0") if [:nofullscreen] # hl parameters.ingest("iv_load_policy=3") if [:noanotate] # list # listType parameters.ingest("loop=1") if [:loop] parameters.ingest("modestbranding=1") if [:noytlogo] parameters.ingest("origin=http://#{URI.parse([:origin]).host}") if [:origin] # playerapiid # playlist parameters.ingest("playsinline=1") if [:playinline] parameters.ingest("rel=0") if [:norelated] parameters.ingest("showinfo=0") if [:hideinfo] parameters.ingest("start=#{[:start]}") if [:start] parameters.ingest("theme=light") if [:lighttheme] parameters=("") if parameters.length.==(1) if [:short] "http://youtu.be/#{video_code}".<<(parameters) elsif [:embed] "//www.youtube.com/embed/#{video_code}".<<(parameters) else "https://www.youtube.com/watch?v=#{video_code}".<<(parameters.gsub("?","&")) end end |
.request(web_request) ⇒ Object
54 55 56 57 |
# File 'lib/yt_util/url.rb', line 54 def self.request(web_request) try { Mechanize.new.tap { |i| i. = true }.get(web_request).parser } || Nokogiri::HTML(open(web_request)) end |