--- title: "Yt::URL" h2: "URLs" ---

Yt::URL is a convenience class to identify YouTube resources based on their URL patterns:

{% include doc.html library="yt-url" instance="URL#initialize" %}{% include example.html object='url = Yt::URL' method='new' params=' "youtu.be/gknzFj_0vvY"' %}
{% include doc.html library="yt-url" instance="URL#kind" %}{% include example.html object='url' method='kind' result=':video' %}
{% include doc.html library="yt-url" instance="URL#id" %}{% include example.html object='url' method='id' result='"gknzFj_0vvY"' %}
{% include doc.html library="yt-url" instance="URL#resource" %}{% include example.html object='url' method='resource' result='#<Yt::Video @id=gknzFj_0vvY>' %}

Configuration

Yt::URL is not part of the yt library, but comes from the yt-url extension.

To use in any bundled Ruby project, remember to add the line gem 'yt-url', '~> 0.0.0' to its Gemfile.


Authentication

Using Yt::URL does not require authentication since it is based on matching a set of hard-coded patterns:

{% highlight ruby %} Yt::URL::PLAYLIST_PATTERNS # => [ # %r{^(?:https?://)?(?:www\.)?youtube\.com/playlist/?\?list=(?[a-zA-Z0-9_-]+)}, # ] Yt::URL::VIDEO_PATTERNS # => [ # %r{^(?:https?://)?(?:www\.)?youtube\.com/watch\?v=(?[a-zA-Z0-9_-]{11})}, # %r{^(?:https?://)?(?:www\.)?youtu\.be/(?[a-zA-Z0-9_-]{11})}, # %r{^(?:https?://)?(?:www\.)?youtube\.com/embed/(?[a-zA-Z0-9_-]{11})}, # %r{^(?:https?://)?(?:www\.)?youtube\.com/v/(?[a-zA-Z0-9_-]{11})}, # ] Yt::URL::CHANNEL_PATTERNS # => [ # %r{^(?:https?://)?(?:www\.)?youtube\.com/channel/(?UC[a-zA-Z0-9_-]{22})}, # %r{^(?:https?://)?(?:www\.)?youtube\.com/(?c/|user/)?(?[a-zA-Z0-9_-]+)} # ] {% endhighlight %}