Yt - a Ruby client for the YouTube API
Yt helps you write apps that need to interact with YouTube.
After registering your app, you can run commands like:
channel = ::. id: 'UCwCnUcLcb9-eSrHa_RQGkQQ'
channel.title #=> "Yt Test"
The full documentation is available at rubydoc.info.
A comprehensive guide to Yt
All the classes and methods available are detailed on the Yt homepage:
Please proceed to https://fullscreen.github.io/yt-core for more details and examples.
How to install
To install on your system, run
gem install yt-core
To use inside a bundled Ruby project, add this line to the Gemfile:
gem 'yt-core', '~> 0.1.0'
Since the gem follows Semantic Versioning,
indicating the full version in your Gemfile (~> major.minor.patch)
guarantees that your project won’t occur in any error when you
and a new version of Yt is released.
How to test
To run live-tests against the YouTube API, type:
Note that some tests actually hit the YouTube API, and therefore require either an API key or authentication credentials.
In order to run tests marked as :server you need to set up a test YouTube application with access to the YouTube Data API v3 and an environment variable:
YT_SERVER_API_KEY: API Key of a Google app with access to the YouTube Data API v3
In order to run tests marked as :account you als need to create a client ID and secret and then generate a refresh token for the account you want to use as test. Make sure this account has a channel with at least one playlist:
YT_ACCOUNT_CLIENT_ID: Client ID of a Google app with access to the YouTube Data API v3
YT_ACCOUNT_CLIENT_SECRET: Client Secret of a Google app with access to the YouTube Data API v3
YT_ACCOUNT_REFRESH_TOKEN: Refresh token of a YouTube account for the app above
How to release new versions
If you are a manager of this project, remember to upgrade the Yt gem whenever a new feature is added or a bug gets fixed.
Make sure all the tests are passing on Travis CI, document the changes in HISTORY.md and README.md, bump the version, then run
Remember that the yt gem follows Semantic Versioning. Any new release that is fully backward-compatible should bump the patch version (0.0.x). Any new version that breaks compatibility should bump the minor version (0.x.0)
How to contribute
Contribute to the code by forking the project, adding the missing code, writing the appropriate tests and submitting a pull request.
In order for a PR to be approved, all the tests need to pass and all the public methods need to be documented and listed in the guides. Remember:
- to run all tests locally:
bundle exec rspec
- to generate the docs locally:
bundle exec yard
- to list undocumented methods:
bundle exec yard stats --list-undoc
- to launch the guides locally:
bundle exec jekyll s -s docs