Giter Site home page Giter Site logo

netflix-ruby's Introduction

Netflix API for Ruby

Copyright © 2012 Dean Holdren

To install: gem install netflix

This gem uses Netflix’s OAuth REST API, you first need to register an application with Netflix at developer.netflix.com/apps/register/

This will provide you with a “consumer key”, “consumer secret”, and “application name”

To use unauthenticated features (catalog search):

  • TODO

To use authenticated features (i.e. queue management):

  • Set the consumer/developer config:

    Netflix::Client.consumer_key = <your consumer/developer key>
    Netflix::Client.consumer_secret = <your consumer/developer secret>
  • Do OAuth dance: (This is a one-time per user step, save the result somewhere.)

    1. Interactive (commandline/irb): This will open a netflix.com web page to ask the user to authenticate, and provide a pin.

      access_token = Netflix::Client.new.oauth
      
    2. or Web application (Rails/Sinatra/etc), define a URL that can handle the callback

      request_token, auth_url = Netflix::Client.new.oauth_via_callback(my_callback_url)
      session[:request_token] = request_token
      redirect_to auth_url
      

      Then in the handler for “my_callback_url” (i.e. a Rails controller action) retrieve the :oauth_verifier out of the request params

      oauth_verifier = params[:oauth_verifier]
      request_token = session[:request_token]
      access_token = Netflix::Client.new.handle_oauth_callback(request_token, oauth_verifier)
      
  • After OAuth credentials are established:

    access_token = access_token.token
    access_secret = access_token.secret
    user_id = access_token.params["user_id"]
    

    (Record these, for example in a User table in a database)

    client = Netflix::Client.new(access_token, access_token_secret)
    user = client.user(user_id)
    queue = user.available_disc_queue
    discs = queue.discs
    disc_one = discs[0]
    puts "#{disc_one.title} #{disc_one.id}"
    queue.remove(1) #queue is 1-based, so this is first disc
    

Credits

This work is based on: REST API documentation of Netflix (developer.netflix.com), with some help from twitter gem for OAuth ideas github.com/jnunemaker/twitter/

netflix-ruby's People

Contributors

dholdren avatar elhu avatar

Stargazers

 avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.