ryd-client/README.md

3.0 KiB

RYD Client

Python client library for the Return YouTube Dislike API:

Functionality

  • Get votes from a single or a list of YouTube video IDs.
  • Register your user ID by solving the challenge.
  • Cast your vote for a single or a list of YouTube video IDs.

Install

Download and install the library from https://pypi.org/project/ryd-client/:

pip install ryd-client

Usage

Take a look at the command examples below.

Get

Pass a list of YouTube video IDs and get a list of votes or pass a string of a single YouTube video ID to get a single votes dictionary:

from ryd_client import ryd_client

# Examle for a list of IDs

result = ryd_client.get(["kxOuG8jMIgI", "CaaJyRvvaq8"])

[{'id': 'kxOuG8jMIgI',
  'likes': 27863,
  'dislikes': 509751,
  'rating': 1.2113002641063706,
  'viewCount': 3211800,
  'deleted': False,
  'status': 200},
 {'id': 'CaaJyRvvaq8',
  'likes': 505944,
  'dislikes': 13401,
  'rating': 4.900014260551845,
  'viewCount': 3610078,
  'deleted': False,
  'status': 200}]


# Example for a single ID

result = ryd_client.get("kxOuG8jMIgI")

{'id': 'kxOuG8jMIgI',
 'likes': 27863,
 'dislikes': 509751,
 'rating': 1.2113002641063706,
 'viewCount': 3211800,
 'deleted': False,
 'status': 200}

Register

To cast a vote, you need to be registered in the API with your user id. Generate a random user id, one per user, store it in your application and reuse for all future votes from this user.

import ryd_client

user_id = ryd_client.generate_user_id()

# Returns a random 36 char string of ascii_letters and digits
'5v3X3mxQOm3fkez8aWsGsEgjpFe0pJNPWIJi'

Register your user_id in the api:

from ryd_client import ryd_client

success = ryd_client.register(user_id)

# Returns True on success, False on fail
True

Post

Once your user_id is registered, you are allowed to vote. Vote on a list or on a single video ID. Pass a list or a single tuple where the first value of the tuple is the video ID and second value is the vote either as string or int:

  • like: 1
  • dislike: -1
  • neutral: 0 (aka undo your previous vote)

Strings automatically get converted to the matching number, both are valid:

from ryd_client import ryd_client

# Examle for a list of votes
votes = [
    ("kxOuG8jMIgI", "dislike"),
    ("CaaJyRvvaq8", 1),
    ("CEp5SLT-DJg", 0),
]

response = ryd_client.post(votes, user_id=user_id)

[{'id': 'kxOuG8jMIgI', 'status': True, 'vote': -1},
 {'id': 'CaaJyRvvaq8', 'status': True, 'vote': 1},
 {'id': 'CEp5SLT-DJg', 'status': True, 'vote': 0}]

# Examle for a single vote

vote = ("kxOuG8jMIgI", -1)
response = ryd_client.post(vote, user_id=user_id)

{'id': 'kxOuG8jMIgI', 'status': True, 'vote': -1}

Acknowledgement

If you find this API useful, please consider donating to the project.