Metadata-Version: 2.1
Name: ryd-client
Version: 0.0.1
Summary: api client for returnyoutubedislike.com
Home-page: https://github.com/bbilly1/ryd-client
Author: Simon
Author-email: simobilleter@gmail.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/bbilly1/ryd-client/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# RYD Client
Python client library for the **Return YouTube Dislike API**:

- [https://returnyoutubedislike.com/](https://returnyoutubedislike.com/)
- [https://github.com/Anarios/return-youtube-dislike/](https://github.com/Anarios/return-youtube-dislike/)


## Functionality
- Get votes from a list of YouTube video IDs.
- Register your user ID by solving the challenge.
- Cast your vote for a list of YouTube video IDs. 


## Usage
Some command example

### Get Votes
Pass a list of YouTube video IDs and get a list of votes.

```python
import ryd_client

ratings = ryd_client.get_votes(["kxOuG8jMIgI", "CaaJyRvvaq8"])

# Returns a list of dictionaries with ratings for every video ID
[{'id': 'kxOuG8jMIgI',
  'likes': 27569,
  'dislikes': 503144,
  'rating': 1.2117898772151874,
  'viewCount': 3177346,
  'deleted': False,
  'status': 200},
 {'id': 'CaaJyRvvaq8',
  'likes': 502489,
  'dislikes': 13270,
  'rating': 4.900305046067389,
  'viewCount': 3575816,
  '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.

```python
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:

```python
import ryd_client

success = ryd_client.register(user_id)

# Returns True on success, False on fail
True

```

### Post Votes
Once your `user_id` is registered, you are allowed to vote. Vote on a list of video IDs. Pass a list of tuples where the first value 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:

```python
import ryd_client

votes = [
    ("kxOuG8jMIgI", "dislike"),
    ("CaaJyRvvaq8", 1),
    ("CEp5SLT-DJg", 0),
]

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

# Returns a list of dictionaries for every vote cast
[{'id': 'kxOuG8jMIgI', 'status': True, 'vote': -1},
 {'id': 'CaaJyRvvaq8', 'status': True, 'vote': 1},
 {'id': 'CEp5SLT-DJg', 'status': True, 'vote': 0}]

```


## Acknowledgement
If you find this API usefull, please consider donating to the [project](https://returnyoutubedislike.com/donate).


