Add Odysee API

This commit is contained in:
video-prize-ranch
2022-12-07 22:24:41 -05:00
parent fee606292f
commit 3a3889db8c
6 changed files with 1423 additions and 0 deletions
@@ -0,0 +1,717 @@
---
title: api.na-backend.odysee.com
---
> **⚠️ DEPRECATED:** Use official documentation at https://lbry.tech/api/sdk
# Odysee API documentation - api.na-backend.odysee.com
This is an unofficial documentation for the Odysee API. api.na-backend.odysee.com is used for video metadata and video streams, api.odysee.com is used for data such as like/dislike counts and view counts.
## `GET` /api/v2/status
### `200` OK
```json
{
"timestamp": "2021-07-03 00:29:19.5246211 +0000 UTC",
"services": {
"lbrynet": [
{
"name": "lbrynet-b-17",
"status": "ok"
}
]
},
"general_state": "ok"
}
```
## `POST` /api/v1/proxy?m=status
### JSON Data
```json
{
"jsonrpc": "2.0",
"method": "status",
"params": {},
"id": 1625272172600
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"blob_manager": {
"connections": {
"incoming_bps": {},
"outgoing_bps": {},
"time": 0,
"total_incoming_mbs": 0,
"total_outgoing_mbs": 0
},
"finished_blobs": 0
},
"connection_status": {
"code": "connected",
"message": "No connection problems detected"
},
"installation_id": "692EAWhtoqDuAfQ6KHMXxFxt8tkhmt7sfprEMHWKjy5hf6PwZcHDV542VHqRnFnTCD",
"is_running": true,
"skipped_components": [
"hash_announcer",
"blob_server",
"dht"
],
"startup_status": {
"blob_manager": true,
"blockchain_headers": true,
"database": true,
"exchange_rate_manager": true,
"peer_protocol_server": true,
"stream_manager": true,
"upnp": true,
"wallet": true
},
"stream_manager": {
"managed_files": 1
},
"upnp": {
"aioupnp_version": "0.0.13",
"dht_redirect_set": false,
"external_ip": "127.0.0.1",
"gateway": "No gateway found",
"peer_redirect_set": false,
"redirects": {}
},
"wallet": {
"best_blockhash": "3d77791b9d87609a004b398e638bcdc91650247ee4448a2b30bf8474668d0ad3",
"blocks": 0,
"blocks_behind": 0,
"is_encrypted": false,
"is_locked": false
}
},
"id": 1625272172600
}
```
## `POST` /api/v1/proxy?m=resolve
Resolves a LBRY URL.
### JSON Data
#### Video
```json
{
"jsonrpc": "2.0",
"method": "resolve",
"params": {
"urls": [
"lbry://@jordanisgreat505#3/how-to-make-chicken-noodle-oinion-soup#9"
],
"include_purchase_receipt": true,
"include_is_my_output": true
},
"id": 1625272172800
}
```
#### Channel
```json
{
"jsonrpc": "2.0",
"method": "resolve",
"params": {
"urls": [
"lbry://@SomeOrdinaryGamers#a"
],
"include_purchase_receipt": true,
"include_is_my_output": true
},
"id": 1625272172800
}
```
#### Articles
```json
{
"jsonrpc": "2.0",
"method": "resolve",
"params": {
"urls": [
"lbry://@Odysee:8/axxl-on-odysee:c"
],
"include_purchase_receipt": true,
"include_is_my_output": true
},
"id": 1625272172800
}
```
### `200` OK
#### Video
```json
{
"jsonrpc": "2.0",
"result": {
"lbry://@jordanisgreat505#3/how-to-make-chicken-noodle-oinion-soup#9": {
"address": "bDwAYeNLZwt42dkvZi7ijVC99sTSSvwvjb",
"amount": "0.005",
"canonical_url": "lbry://@jordanisgreat505#3/how-to-make-chicken-noodle-oinion-soup#9",
"claim_id": "9e9a5448d0afbe13bc7cd129acb35a290233487f",
"claim_op": "update",
"confirmations": 71132,
"height": 917608,
"is_channel_signature_valid": true,
"is_my_output": false,
"meta": {
"activation_height": 902112,
"creation_height": 902112,
"creation_timestamp": 1611546078,
"effective_amount": "0.005",
"expiration_height": 3004512,
"is_controlling": true,
"reposted": 0,
"support_amount": "0.0",
"take_over_height": 902112,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": 0.0
},
"name": "how-to-make-chicken-noodle-oinion-soup",
"normalized_name": "how-to-make-chicken-noodle-oinion-soup",
"nout": 0,
"permanent_url": "lbry://how-to-make-chicken-noodle-oinion-soup#9e9a5448d0afbe13bc7cd129acb35a290233487f",
"short_url": "lbry://how-to-make-chicken-noodle-oinion-soup#9",
"signing_channel": {
"address": "bDwAYeNLZwt42dkvZi7ijVC99sTSSvwvjb",
"amount": "0.005",
"canonical_url": "lbry://@jordanisgreat505#3",
"claim_id": "3d248260e4d89cf4292c9d193560525f9a792512",
"claim_op": "update",
"confirmations": 71131,
"has_signing_key": false,
"height": 917609,
"meta": {
"activation_height": 902097,
"claims_in_channel": 450,
"creation_height": 902097,
"creation_timestamp": 1611543696,
"effective_amount": "0.005",
"expiration_height": 3004497,
"is_controlling": true,
"reposted": 0,
"support_amount": "0.0",
"take_over_height": 902097,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": 0.0
},
"name": "@jordanisgreat505",
"normalized_name": "@jordanisgreat505",
"nout": 0,
"permanent_url": "lbry://@jordanisgreat505#3d248260e4d89cf4292c9d193560525f9a792512",
"short_url": "lbry://@jordanisgreat505#3",
"timestamp": 1614001671,
"txid": "e9f99e66057025b8aada3b64acf7d004bb14fe035550a117cc48a185ae755ef8",
"type": "claim",
"value": {
"cover": {
"url": "https://thumbnails.lbry.com/banner-UCX6jiEzG7fNe1OXdzrGJxMQ"
},
"description": "hello peeps i make videos daily about video games real life things\n\nThanks to ♤ACE♤Freeflier181 for the profile pic and watermark. please go check her out for your own!\nLink https://freeflier181.deviantart.com/\n\nThanks to Not Cboy for the new channel banner!\n",
"public_key": "3056301006072a8648ce3d020106052b8104000a03420004cead14e4a4f8502eb2622eef73a796bd1eb82f440f51523f9eda2dea75e317fd75d714b394fd6c6813f40432fa0aaeff705762771a8ecd5900b5dbae155dcffe",
"public_key_id": "bPea6CzhHXogBcmy7SWahuFTefrC4UfHP7",
"thumbnail": {
"url": "https://thumbnails.lbry.com/UCX6jiEzG7fNe1OXdzrGJxMQ"
},
"title": "jordanisgreat 505"
},
"value_type": "channel"
},
"timestamp": 1614001625,
"txid": "6119090be4c52277bb520ed27207748c4850e6540357ecb8efd942ffcf841c66",
"type": "claim",
"value": {
"description": "\n...\nhttps://www.youtube.com/watch?v=pmTNVZL7KSk",
"license": "Copyrighted (contact publisher)",
"release_time": "1568073600",
"source": {
"hash": "aae9dd9b29f90923f34b8e48d29d7e0cb036334a5cd132c2cb8724c437f2146287ef810c742742ca43b32556cb34678b",
"media_type": "video/mp4",
"name": "how-to-make-chicken-noodle.mp4",
"sd_hash": "09d9b2079ca3aaf4484b6a29fe3e03db7bc3934ba74d23ec3525d0a9022496806ef2335b8fbf582a60768822f7a848fe",
"size": "4455260"
},
"stream_type": "video",
"thumbnail": {
"url": "https://thumbnails.lbry.com/pmTNVZL7KSk"
},
"title": "How to make chicken noodle oinion soup part 3",
"video": {
"duration": 25,
"height": 720,
"width": 1280
}
},
"value_type": "stream"
}
},
"id": 0
}
```
#### Channel
```json
{
"jsonrpc": "2.0",
"result": {
"lbry://@SomeOrdinaryGamers#a": {
"address": "bU66vJDJy3GwC6zu9E21bM4ME94hNAmzfV",
"amount": "0.005",
"canonical_url": "lbry://@SomeOrdinaryGamers#a",
"claim_id": "a8cca58a9a49b08a1325be5fe76646ea85201dbd",
"claim_op": "update",
"confirmations": 24170,
"has_signing_key": false,
"height": 965486,
"is_my_output": false,
"meta": {
"activation_height": 965412,
"claims_in_channel": 2071,
"creation_height": 965412,
"creation_timestamp": 1621587132,
"effective_amount": "5547.638718",
"expiration_height": 3067812,
"is_controlling": true,
"reposted": 0,
"support_amount": "5547.633718",
"take_over_height": 965412,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": -0.028158480301499367
},
"name": "@SomeOrdinaryGamers",
"normalized_name": "@someordinarygamers",
"nout": 0,
"permanent_url": "lbry://@SomeOrdinaryGamers#a8cca58a9a49b08a1325be5fe76646ea85201dbd",
"short_url": "lbry://@SomeOrdinaryGamers#a",
"timestamp": 1621598500,
"txid": "a8b547777a9ade157448f9508c61804ba4bf426e1c42b733a3ffe867afa22196",
"type": "claim",
"value": {
"cover": {
"url": "https://thumbnails.lbry.com/banner-UCtMVHI3AJD4Qk4hcbZnI9ZQ"
},
"description": "Let's Play's, Commentaries, Reviews, Hardcore Raging ... we're just a team of Ordinary Gamers... what did YOU expect???",
"public_key": "3056301006072a8648ce3d020106052b8104000a03420004b63167b08a00a1a31ee38ae437e5c44abb606821eda2edc9898b9c71418afa729845eeee5756a7f1f590ca4f4c4343b9d0b867767833f7fb6290589733391a1d",
"public_key_id": "bFSKg3r7mxAdSo5JYivr1mzqvbByyVhApp",
"thumbnail": {
"url": "https://thumbnails.lbry.com/UCtMVHI3AJD4Qk4hcbZnI9ZQ"
},
"title": "SomeOrdinaryGamers"
},
"value_type": "channel"
}
},
"id": 0
}
```
#### Article
```json
{
"jsonrpc": "2.0",
"result": {
"lbry://@Odysee:8/axxl-on-odysee:c": {
"address": "bLjszZEJBxUCe2zrprf3hHZmK2r3kbmK6V",
"amount": "50.0",
"canonical_url": "lbry://@Odysee#8/axxl-on-odysee#c",
"claim_id": "c80d4c55bb2b3ecba911097f192ccbe9c5ce2ef3",
"claim_op": "update",
"confirmations": 48104,
"height": 1006034,
"is_channel_signature_valid": true,
"is_my_output": false,
"meta": {
"activation_height": 1006034,
"creation_height": 1006032,
"creation_timestamp": 1628008731,
"effective_amount": "62.018",
"expiration_height": 3108434,
"is_controlling": true,
"reposted": 0,
"support_amount": "12.018",
"take_over_height": 1006032,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": 0.0
},
"name": "axxl-on-odysee",
"normalized_name": "axxl-on-odysee",
"nout": 0,
"permanent_url": "lbry://axxl-on-odysee#c80d4c55bb2b3ecba911097f192ccbe9c5ce2ef3",
"short_url": "lbry://axxl-on-odysee#c",
"signing_channel": {
"address": "bWmRCqPEgrnoMaXzwZ6wGtaY7BVcBCTJFx",
"amount": "1.0",
"canonical_url": "lbry://@Odysee#8",
"claim_id": "80d2590ad04e36fb1d077a9b9e3a8bba76defdf8",
"claim_op": "update",
"confirmations": 138653,
"has_signing_key": false,
"height": 915485,
"meta": {
"activation_height": 916714,
"claims_in_channel": 48,
"creation_height": 831298,
"creation_timestamp": 1600203894,
"effective_amount": "1689.57096",
"expiration_height": 3017885,
"is_controlling": true,
"reposted": 1,
"support_amount": "1688.57096",
"take_over_height": 919358,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": 0.0
},
"name": "@Odysee",
"normalized_name": "@odysee",
"nout": 0,
"permanent_url": "lbry://@Odysee#80d2590ad04e36fb1d077a9b9e3a8bba76defdf8",
"short_url": "lbry://@Odysee#8",
"timestamp": 1613674567,
"txid": "6f2e8b3799f919aee9154f465f653f632c76bd062b23dcf84f0b9098f87ccce9",
"type": "claim",
"value": {
"cover": {
"url": "https://spee.ch/5/99ef192b3b366563.jpg"
},
"email": "hello@odysee.com",
"languages": [
"en"
],
"public_key": "3056301006072a8648ce3d020106052b8104000a034200047c1024948871d1dcdf92a3ad987d5e94d8cab2e35ca19a85407be566c7af2b4a51d4e4ff7250041cfc26ee83e128f2831e75de043b942832e345879a0ac13dba",
"public_key_id": "bQcmWRk69UkGQEib8WwrTCpq533QnFWwEX",
"tags": [
"odysee",
"lbry",
"news",
"blockchain",
"education"
],
"thumbnail": {
"url": "https://spee.ch/9/45245681a50082f7.jpg"
},
"title": "Odysee",
"website_url": "odysee.com"
},
"value_type": "channel"
},
"timestamp": 1628009077,
"txid": "858c42a00a659a948083e9997df16545a1eb0a1e9f765a5a0235182c972b8dbf",
"type": "claim",
"value": {
"languages": [
"en"
],
"license": "None",
"release_time": "1628008557",
"source": {
"hash": "058b182f95e3433b540e08865f160855eb41a65fa269aff2ed5b1a07c0bf5b7b3ffc9c1de4a570873d9f93c2602bcd5a",
"media_type": "text/markdown",
"name": "axxl-on-odysee.md",
"sd_hash": "5fcc569c4c087eff097fa17dd738298f3fa658f4b21737e2ba02aa9586691f012c403e21f115c2c36bf808e48977763b",
"size": "1106"
},
"stream_type": "document",
"tags": [
"axxl",
"odysee"
],
"thumbnail": {
"url": "https://spee.ch/1/0e4d2ae15b8553bb.png"
},
"title": "Unprettiest Human Worldwide is now on Odysee"
},
"value_type": "stream"
}
},
"id": 0
}
```
## `POST` /api/v1/proxy?m=version
### JSON Data
```json
{
"jsonrpc": "2.0",
"method": "version",
"params": {},
"id": 1625272173800
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"build": "release",
"desktop": "Unknown",
"distro": {
"codename": "bionic",
"id": "ubuntu",
"like": "debian",
"version": "18.04",
"version_parts": {
"build_number": "",
"major": "18",
"minor": "04"
}
},
"lbrynet_version": "0.99.0",
"os_release": "4.14.193-149.317.amzn2.x86_64",
"os_system": "Linux",
"platform": "Linux-4.14.193-149.317.amzn2.x86_64-x86_64-with-Ubuntu-18.04-bionic",
"processor": "x86_64",
"python_version": "3.7.10",
"version": "0.99.0"
},
"id": 0
}
```
## `POST` /api/v1/proxy?m=get
Get video stream URLs.
### JSON Data
```json
{
"jsonrpc":"2.0",
"method":"get",
"params": {
"uri": "lbry://@jordanisgreat505#3/how-to-make-chicken-noodle-oinion-soup#9",
"save_file": false
},
"id":1625272174700
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"streaming_url": "https://cdn.lbryplayer.xyz/api/v4/streams/free/how-to-make-chicken-noodle-oinion-soup/9e9a5448d0afbe13bc7cd129acb35a290233487f/09d9b2"
},
"id": 1625272174700
}
```
## `POST` /api/v1/proxy?m=comment_react_list
Get likes/dislikes for comments.
### JSON Data
```json
{
"jsonrpc": "2.0",
"method": "comment_react_list",
"params": {
"comment_ids": "92e04bebad630bd19138ef5fb922ce00a53daa39e8a0c8da9d34bafdf2de3940,beaa7141304adaf9fd54b2c4072b40867db7707510af6272770e6b6da103ac73"
},
"id": 1625437715900
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"others_reactions": {
"15f3272aa085ac16771459ad33b5a3f195af5932458ec130407794a957989870": {
"": 0,
"bones": 0,
"creator_like": 0,
"creators_like": 0,
"dislike": 0,
"frozen_tom": 0,
"like": 0,
"likes": 0,
"mind_blown": 0
},
"3e2bd8f9fed0943a0895c428476473e6fab21afb694ec54a161f1a6bd0e493c3": {
"": 0,
"bones": 0,
"creator_like": 0,
"creators_like": 0,
"dislike": 5,
"frozen_tom": 0,
"like": 1,
"likes": 0,
"mind_blown": 0
}
}
},
"id": 0
}
```
## `POST` /api/v1/proxy?m=claim_search
### JSON Data
```json
{
"jsonrpc": "2.0",
"method": "claim_search",
"params":{
"page_size": 30,
"page": 1,
"no_totals": true,
"not_tags": ["tag"],
"claim_type": ["stream", "collection"],
"order_by": ["release_time | effective_amount | trending_group/trending_mixed"],
"fee_amount": "<=0",
"channel_ids": ["2332c0df0bd5e046db04fe7e3e79f756d35a1523"],
"release_time": "<1626737820",
"include_purchase_receipt": true
},
"id": 1626737833900
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"blocked": {
"channels": [],
"total": 0
},
"items": [
{
"address": "bDymdcd6R9mceNmkaMGAdRjifLR3W9xCSb",
"amount": "0.01",
"canonical_url": "lbry://@DistroTube#2/to-protect-yourself,-never-give-your-dna#c",
"claim_id": "c104793f74d9fd7793170f1fd262baec216a1d85",
"claim_op": "create",
"confirmations": 90,
"height": 997927,
"is_channel_signature_valid": true,
"meta": {
"activation_height": 997927,
"creation_height": 997927,
"creation_timestamp": 1626722365,
"effective_amount": "47.0565573",
"expiration_height": 3100327,
"is_controlling": true,
"reposted": 1,
"support_amount": "47.0465573",
"take_over_height": 997927,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": 5.676791667938232
},
"name": "to-protect-yourself,-never-give-your-dna",
"normalized_name": "to-protect-yourself,-never-give-your-dna",
"nout": 0,
"permanent_url": "lbry://to-protect-yourself,-never-give-your-dna#c104793f74d9fd7793170f1fd262baec216a1d85",
"short_url": "lbry://to-protect-yourself,-never-give-your-dna#c",
"signing_channel": {
"address": "bDymdcd6R9mceNmkaMGAdRjifLR3W9xCSb",
"amount": "0.005",
"canonical_url": "lbry://@DistroTube#2",
"claim_id": "2332c0df0bd5e046db04fe7e3e79f756d35a1523",
"claim_op": "update",
"confirmations": 5008,
"has_signing_key": false,
"height": 993009,
"meta": {
"activation_height": 695996,
"claims_in_channel": 936,
"creation_height": 695996,
"creation_timestamp": 1578488436,
"effective_amount": "41818.005",
"expiration_height": 2798396,
"is_controlling": true,
"reposted": 0,
"support_amount": "41818.0",
"take_over_height": 695996,
"trending_global": 0.0,
"trending_group": 0,
"trending_local": 0.0,
"trending_mixed": -0.013612883165478706
},
"name": "@DistroTube",
"normalized_name": "@distrotube",
"nout": 0,
"permanent_url": "lbry://@DistroTube#2332c0df0bd5e046db04fe7e3e79f756d35a1523",
"short_url": "lbry://@DistroTube#2",
"timestamp": 1625947295,
"txid": "cb40029fb6d79fc88c80ce3c9a0c1b614c8087b0e6fc41678ff80d3e1a400dae",
"type": "claim",
"value": {
"cover": {
"url": "https://spee.ch/1/59fe91a43bd9d9db.png"
},
"description": "",
"locations": [
{
"country": "US"
}
],
"public_key": "",
"public_key_id": "",
"thumbnail": {
"url": "https://spee.ch/e/b18cc0e2d8c9707d.jpg"
},
"title": "DistroTube",
"website_url": "www.distrotube.com"
},
"value_type": "channel"
},
"timestamp": 1626722365,
"txid": "",
"type": "claim",
"value": {
"description": "description",
"languages": ["en"],
"license": "Copyrighted (contact publisher)",
"release_time": "1626721201",
"source": {
"hash": "",
"media_type": "video/mp4",
"name": "to-protect-yourself-never-give.mp4",
"sd_hash": "",
"size": "153053012"
},
"stream_type": "video",
"tags": ["tags"],
"thumbnail": {
"url": "https://thumbnails.lbry.com/4kDPDio4MYw"
},
"title": "To Protect Yourself, Never Give Your DNA Or Biometric Data",
"video": {
"duration": 415,
"height": 1080,
"width": 1920
}
},
"value_type": "stream"
},
]
}
}
```
+159
View File
@@ -0,0 +1,159 @@
---
title: api.odysee.com
---
# Odysee API documentation - api.odysee.com
This is an unofficial documentation for the Odysee API. api.odysee.com is used for view counts and video blocks. For metadata and video streams, api.na-backend.odysee.com is used.
## `GET` /file/list_blocked
Lists blocked claim IDs (for DMCA or other reasons).
### `200` OK
```
{
"success": true,
"error": null,
"data": {
"outpoints": [
"...:0",
],
}
}
```
## `GET` /file/view_count
Get view counts of videos.
### Query parameters
* `REQUIRED` auth_token: Authentication token
* `REQUIRED` claim_id: Claim ID of the video
### `200` OK
```
{
"success": true,
"error": null,
"data": [
239
]
}
```
### `401` Unauthorized
```
{
"success": false,
"error": "authentication required",
"data": null
}
```
### `400` Bad Request
```
{
"success": false,
"error": "claim_id: cannot be blank.",
"data": null
}
```
## `POST` /user/new
Create a new account.
### Form Data
```
auth_token: ""
language: "en"
app_id: "odyseecom692EAWhtoqDuAfQ6KHMXxFxt8tkhmt7sfprEMHWKjy5hf6PwZcHDV542V"
```
### `200` OK
```json
{
"success": true,
"error": null,
"data": {
"id": 179611504,
"language": "en",
"given_name": null,
"family_name": null,
"created_at": "2021-07-04T15:59:44Z",
"updated_at": "2021-07-04T15:59:44Z",
"invited_by_id": null,
"invited_at": null,
"invites_remaining": 0,
"invite_reward_claimed": false,
"is_reward_approved": false,
"is_email_enabled": true,
"manual_approval_user_id": null,
"reward_status_change_trigger": null,
"settings": null,
"prev_settings": null,
"publish_id": null,
"country": null,
"is_odysee_user": false,
"location": null,
"auth_token": "AUTH_TOKEN"
}
}
```
## `GET` /subscription/sub_count
Get the sub count of a channel.
### Query parameters
* `REQUIRED` auth_token: Authentication token
* `REQUIRED` claim_id: Claim ID of the video
### `200` OK
```json
{
"success": true,
"error": null,
"data": [
34213
]
}
```
### `400` Bad Request
```json
{
"success": false,
"error": "claim_id: cannot be blank.",
"data": null
}
```
### `401` Unauthorized
```json
{
"success": false,
"error": "authentication required",
"data": null
}
```
## `GET` /yt/resolve
Get LBRY claim or channel IDs from YouTube video/channel IDs.
### Query parameters
* video_ids: YouTube video ID (multiple accepted, comma-seperated)
* channel_ids: YouTube channel ID (multiple accepted, comma-seperated)
### `200` OK
```json
{
"success": true,
"error": null,
"data": {
"videos": {
"5JvLV2-ngCI": "@AlphaNerd#8/how-ssh-works-2#6",
"12eoipnmdq": "" # Invalid or non-synced videos will return null
},
"channels": {
"UC5UAwBUum7CPN5buc-_N1Fw": "@TheLinuxExperiment#e5d96ea3720b01cca537c6d90f38e8c11ff06a0a"
}
}
}
```
+55
View File
@@ -0,0 +1,55 @@
---
title: api.odysee.live
---
# Odysee API documentation - api.odysee.live
This is an unofficial documentation for the Odysee API. api.odysee.live is used for live streams.
> ⚠️ Requests for live video streams require extra headers to avoid being blocked. See [proxy/live.go](https://codeberg.org/librarian/librarian/src/branch/main/proxy/live.go#L24) for an example.
## `GET` /livestream/is_live
Gets data about the livestream.
### Query parameters
* `channel_claim_id` - Claim ID of the channel
### `200` OK
```json
{
"success": true,
"error": null,
"data": {
"Live": true,
"Start": "2022-04-23T20:12:24Z",
"VideoURL": "https://cloud.odysee.live/content/496730b88e41e74742fba5b6365435e5622dce92/master.m3u8",
"ThumbnailURL": "",
"ViewerCount": 9,
"ChannelClaimID": "496730b88e41e74742fba5b6365435e5622dce92",
"ActiveClaim": {
"ClaimID": "5d500bc4a741d14908507b5960280b1d0d1a0fc7",
"ReleaseTime": "2022-04-08T11:38:47Z"
},
"PastClaims": [
{
"ClaimID": "5d500bc4a741d14908507b5960280b1d0d1a0fc7",
"ReleaseTime": "2022-04-08T11:38:47Z"
},
{
"ClaimID": "63a0c26587209371a462118d72a249382f01f5cf",
"ReleaseTime": "2022-03-26T12:26:17Z"
}
],
"FutureClaims": null
}
}
```
## `GET` wss://sockety.odysee.com/ws/commentron
WebSocket for live chat.
### Query Parameters
* `id` - Claim ID of the channel
* `category` - Claim ID of the channel
### Messages
TO-DO
+250
View File
@@ -0,0 +1,250 @@
---
title: comments.odysee.tv
---
# Odysee API Documentation - comments.odysee.tv
Odysee comments API.
## `POST` /api/v2?m=comment.List
List comments for a claim.
### JSON Data
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "comment.List",
"params": {
"page": 1,
"page_size": 10,
"top_level": true,
"sort_by: 3, # 3 - Best, 2 - Controversial, 0 - New
"parent_id": "parent comment ID", # For comment replies
"claim_id": "463e63afb35a319f260b36ef8d5c3dc41a98ce28",
"channel_id": "ecf0a6be99030d0ad4e10aec11d2c0bab94246ae",
"channel_name": "@MusicARetro"
}
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"page": 1,
"page_size": 600,
"total_pages": 1,
"total_items": 3,
"total_filtered_items": 3,
"items": [
{
"comment": "otimo",
"comment_id": "cf646d91c2c98a9471954b63bc51cf8c78f86fa1c734fb0c65e49ed0ded3799b",
"claim_id": "463e63afb35a319f260b36ef8d5c3dc41a98ce28",
"timestamp": 1613902598,
"signature": "",
"signing_ts": "1613902598",
"is_hidden": false,
"is_pinned": false,
"channel_id": "d177dcbe8cfd1b6e58797ea573ba856a2be759c0",
"channel_name": "@joseavf1",
"channel_url": "lbry://@joseavf1#d177dcbe8cfd1b6e58797ea573ba856a2be759c0",
"support_amount": 0
}, {
"comment":"True. Always entertaining content.",
"comment_id":"49357e258bf3b69574ead22e43144630c94ca73950b84cc7280f99c610b559a2",
"claim_id":"93b951fc1f8c7af3def41073c539ec957c3c562a",
"timestamp":1625274573,
"parent_id":"fafae646a3c1ae2e3f4631b77733ef5a6e197f052228d8ae09aa642aa2ddff34",
"signature":"",
"signing_ts":"1625274572",
"is_hidden":false,
"is_pinned":false,
"channel_id":"0db3cea9230c2506e266df053a5a8aca8dc39214",
"channel_name":"@VoidHeart",
"channel_url":"lbry://@VoidHeart#0db3cea9230c2506e266df053a5a8aca8dc39214",
"replies":1,
"support_amount":0
}
],
"has_hidden_comments": false
},
"id": 1
}
```
## `POST` /api/v2?m=reaction.List
Get comment reactions.
### JSON Data
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "reaction.List",
"params": {
"comment_ids": "commentId,commentId2" # Comma-separated list of comment IDs
}
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"others_reactions": {
"062d9b51b099db7c4bba2e3aa2811badc901cf116f6fb6cdb68e0a636784fa14": {
"": 0,
"bones": 0,
"creator_like": 0,
"creators_like": 0,
"dislike": 0,
"frozen_tom": 0,
"like": 1,
"likes": 0,
"mind_blown": 0
}
}
},
"id": 1
}
```
## `POST` /api/v2?m=comment.Create
Create a comment.
### JSON Data
```json
{
"method": "comment.Create",
"id": 1,
"jsonrpc": "2.0",
"params": {
"channel_id": "81bec0b66ff34a1378581751958f5b98f9043d17",
"channel_name": "@vertbyqb",
"claim_id": "2ba7ec34033a42c76468cdfc463943e5de7e364a",
"parent_id": "", # Optional, for replies
"comment": "l test",
"signature": "lbrynet channel sign --channel_name=@channel --hexdata=hexdata", # hexdata is the hex encoded version of the comment. TO-DO: Document signing API
"signing_ts": "1642638072"
}
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result": {
"comment": "l test",
"comment_id": "c20a24a3fa050d0b3cd851be1dcf27d3091bcee2e770784fba7d70f3502964d5",
"claim_id": "2ba7ec34033a42c76468cdfc463943e5de7e364a",
"timestamp": 1642638103,
"parent_id": "ef31674ca10560c5c1ad41f9b2e2de80af80fe73121047e96a7ba1f28dd00525",
"signature": "f37dcadda088b77a6ee17271e8d27b2b67820b22bc2752c066864fa9ebfaa33f9ea9d98cf7e7b3209b519e0ca66ea65a62d5738b9d028f42e0c7a420a2b603bf",
"signing_ts": "1642638072",
"channel_id": "81bec0b66ff34a1378581751958f5b98f9043d17",
"channel_name": "@vertbyqb",
"channel_url": "lbry://@vertbyqb#81bec0b66ff34a1378581751958f5b98f9043d17",
"currency": "",
"support_amount": 0,
"is_hidden": false,
"is_pinned": false,
"is_fiat": false
},
"id": 1
}
```
## `POST` /api/v2?m=comment.Abandon
Abandon a comment.
### JSON Data
```json
{
"method": "comment.Abandon",
"id": 1,
"jsonrpc": "2.0",
"params": {
"channel_id": "81bec0b66ff34a1378581751958f5b98f9043d17",
"channel_name": "@vertbyqb",
"claim_id": "2ba7ec34033a42c76468cdfc463943e5de7e364a",
"comment_id": "3eb5e2719a0e70d987eef586234e3fafd31eaafca14f9cc14048accf1ba4aef4",
"signature": "lbrynet channel sign --channel_name=@channel --hexdata=hexdata", # hexdata is the hex encoded version of the comment_id. TO-DO: Document signing API
"signing_ts": "1642638072"
}
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result":
{
"comment": "Test",
"comment_id": "3eb5e2719a0e70d987eef586234e3fafd31eaafca14f9cc14048accf1ba4aef4",
"claim_id": "f334b6d4f4b42620d5abfe07ad1100cf1d597a9f",
"timestamp": 1649613454,
"signature": "2945092ad56d8997d5537bd77bd7420b16004e7fa41d2fc639dfe10b0601f2548cb9ce8b6d8ebb024175e8ba62035f11052fdc2c5b3b089c92134bfdba9abd61",
"signing_ts": "1649613454",
"channel_id": "ebec8cc32a98cfed2902f572bad62c3c0378def2",
"channel_name": "@MorsMortium",
"channel_url": "lbry://@MorsMortium#ebec8cc32a98cfed2902f572bad62c3c0378def2",
"currency": "",
"support_amount": 0,
"is_hidden": false,
"is_pinned": false,
"is_fiat": false,
"abandoned": true
},
"id": 1
}
```
## `POST` /api/v2?m=comment.Edit
Edit a comment.
### JSON Data
```json
{
"id": 1,
"jsonrpc": "2.0",
"method": "comment.Edit",
"params": {
"comment_id": "3eb5e2719a0e70d987eef586234e3fafd31eaafca14f9cc14048accf1ba4aef4",
"comment": "Test",
"channel_name": "@MorsMortium",
"channel_id": "ebec8cc32a98cfed2902f572bad62c3c0378def2",
"signature": "lbrynet channel sign --channel_name=@channel --hexdata=hexdata", # hexdata is the hex encoded version of the comment. TO-DO: Document signing API
"signing_ts": "1642638072"
}
}
```
### `200` OK
```json
{
"jsonrpc": "2.0",
"result":
{
"comment": "Testggggggddfsdsd",
"comment_id": "bc91909960cb7b74c09777d9291bebf208e0a6e32801fbbe64acfd809cbb8218",
"claim_id": "f334b6d4f4b42620d5abfe07ad1100cf1d597a9f",
"timestamp": 1649615106,
"signature": "90080fa06bbe51530a224f604be850a851110248e50d5aa682b776f12f097fe78d68775816addfad49277243c6968f40cfd259ceb56d7f209ed923186705560a",
"signing_ts": "1649615106",
"channel_id": "ebec8cc32a98cfed2902f572bad62c3c0378def2",
"channel_name": "@MorsMortium",
"channel_url": "lbry://@MorsMortium#ebec8cc32a98cfed2902f572bad62c3c0378def2",
"currency": "",
"support_amount": 0,
"is_hidden": false,
"is_pinned": false,
"is_fiat": false
},
"id": 1
}
```
+70
View File
@@ -0,0 +1,70 @@
---
title: lighthouse.odysee.tv
---
# Odysee API documentation - lighthouse.odysee.tv
lighthouse.odysee.tv is used for searching Odysee.
> ⚠️ Requests to these endpoints require extra headers to avoid being blocked. See [api/search.go](https://codeberg.org/librarian/librarian/src/branch/main/api/search.go#L36) for an example.
## `GET` /search
Search Odysee for channels and videos.
### Query parameters
* `REQUIRED` s: Search query (string) (3-99999 characters)
* size: Amount of search results to get (number, default: 9)
* from: Use to get next page of results (number)
* claimType: The type of claim to search for (accepts list, (file,channel): file, channel, default: file,channel)
* nsfw: Show NSFW videos (boolean)
* free_only: Show paid videos (boolean)
* related_to: Claim ID of video to get related videos (string)
### `200` OK
```
[
{
"claimId": "2332c0df0bd5e046db04fe7e3e79f756d35a1523",
"name": "@DistroTube"
}
]
```
### `400` Bad Request
```
{
"success": false,
"error": "S: cannot be blank.",
"data": null
}
```
## `GET` /autocomplete
### Query parameters
* `REQUIRED` s: Search query (string)
### `200` OK
```
[
"searchnu-searchqu-software-entfernen",
"searchsploit-searching-for-exploits",
"SearchFunctionHangUp",
"search1",
"searchblackbox-net-history",
"CRYM---Searchlights",
"searchblackbox-review-1",
"torrent-search-searching-bittorrent",
"searchthat-net-v7",
"searchthat-new-design"
]
```
### `400` Bad Request
```
{
"success": false,
"error": "S: cannot be blank.",
"data": null
}
```
+172
View File
@@ -0,0 +1,172 @@
---
title: odysee.com
---
# Odysee API documentation - odysee.com
This is unofficial documentation for the Odysee API.
## `GET` /$/api/content/v2/get
### `200` OK
Response shortened and channel IDs removed.
```json
{
"status": "success",
"data": {
"en": {
"categories": {
"FEATURED": {
"channelIds": [],
"name": "popculture",
"sortOrder": 10,
"icon": "Pop Culture",
"label": "Pop Culture",
"description": "Movies, TV, Comic Books, and all the other pop culture content on Odysee",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"ART": {
"channelIds": [],
"name": "artists",
"sortOrder": 20,
"icon": "Artists",
"label": "Artists",
"description": "Odysee's home for art, animation, comedy, and everything inbetween",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"PRIMARY_CONTENT": {
"channelIds": [],
"name": "education",
"sortOrder": 30,
"icon": "Education",
"label": "Education",
"description": "Who needs school when there's Odysee?",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"LIFESTYLE": {
"channelIds": [],
"name": "lifestyle",
"sortOrder": 30,
"icon": "Peace",
"label": "Lifestyle",
"description": "Odysee's home for lifestyle content - cooking, gardening, fitness, you name it",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"MUSIC": {
"channelIds": [],
"name": "music",
"sortOrder": 40,
"icon": "MusicCategory",
"label": "Music",
"description": "Get your groove on with Odysee",
"image": "https://player.odycdn.com/speech/category-music:8.jpg",
"channelLimit": "1",
"daysOfContent": 720,
"pageSize": 12
},
"GAMING": {
"channelIds": [],
"name": "gaming",
"sortOrder": 60,
"icon": "Gaming",
"label": "Gaming",
"description": "Pew pew bzzz gaming on Odysee",
"image": "https://player.odycdn.com/speech/category-gaming:5.jpg",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12,
"tags": [
"gaming"
],
"searchLanguages": [
"en"
]
},
"TECHNOLOGY": {
"channelIds": [],
"name": "tech",
"sortOrder": 80,
"icon": "Speaker",
"label": "Tech",
"description": "Hardware, software, startups, photography on Odysee",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"FINANCE": {
"channelIds": [],
"name": "finance",
"sortOrder": 100,
"icon": "DollarSign",
"label": "Finance 2.0",
"description": "Crypto, Money, Economics, Markets on Odysee",
"image": "https://player.odycdn.com/speech/category-finance:c.jpg",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"UNIVERSE": {
"channelIds": [],
"name": "universe",
"sortOrder": 60,
"icon": "Universe",
"label": "Universe",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"NEWS_AND_POLITICS": {
"hideByDefault": true,
"channelIds": [],
"name": "news",
"sortOrder": 90,
"icon": "Aperature",
"label": "News & Politics",
"description": "Stay up to date with all that's happening around the world on Odysee",
"image": "",
"channelLimit": "1",
"daysOfContent": 180,
"pageSize": 12
},
"WILD_WEST": {
"hideByDefault": true,
"name": "wildwest",
"sortOrder": 999,
"icon": "WildWest",
"label": "Wild West",
"description": "Boosted by user credits, this is what the community promotes on Odysee",
"image": "https://player.odycdn.com/speech/category-wildwest:1.jpg",
"channelLimit": "1",
"searchLanguages": [
"en"
],
"excludedChannelIds": []
}
},
"meme": {
"text": "don't worry about the vase",
"url": "https://odysee.com/@Odysee:8?view=discussion"
},
"announcement": ""
},
"fr": {
"categories": {
}
}
}
}
```