Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Research and implement PeerTube specific properties #1197

Open
gabek opened this issue Jul 16, 2021 · 5 comments
Open

Research and implement PeerTube specific properties #1197

gabek opened this issue Jul 16, 2021 · 5 comments
Assignees
Labels
activitypub-federation Functionality around ActivityPub and fediverse integration backlog Ideas that might be cool and can be looked into later.

Comments

@gabek
Copy link
Member

gabek commented Jul 16, 2021

https://docs.joinpeertube.org/api-activitypub

@gabek gabek added the activitypub-federation Functionality around ActivityPub and fediverse integration label Jul 16, 2021
@gabek gabek added this to the ActivityPub milestone Jul 16, 2021
@gabek gabek self-assigned this Jul 18, 2021
@gabek
Copy link
Member Author

gabek commented Jan 30, 2022

Here's an error PeerTube throws when you ask PeerTube to follow an Owncast server:

warn[1/30/2022, 11:36:55 AM] Cannot fetch remote actor count undefined.
{
  "err": {
    "stack": "RequestError: Missing `url` property\n    at Request._destroy (/app/node_modules/got/dist/source/core/index.js:1378:21)\n    at Request.destroy (internal/streams/destroy.js:38:8)\n    at /app/node_modules/got/dist/source/core/index.js:354:26\n    at new Request (/app/node_modules/got/dist/source/core/index.js:357:11)\n    at makeRequest (/app/node_modules/got/dist/source/as-promise/index.js:35:29)\n    at /app/node_modules/got/dist/source/as-promise/index.js:147:9\n    at /app/node_modules/p-cancelable/index.js:63:11\n    at new Promise (<anonymous>)\n    at new PCancelable (/app/node_modules/p-cancelable/index.js:31:19)\n    at Object.asPromise [as default] (/app/node_modules/got/dist/source/as-promise/index.js:33:21)\n    at getPromiseOrStream (/app/node_modules/got/dist/source/create.js:43:121)\n    at /app/node_modules/got/dist/source/create.js:68:20\n    at got_1.default.extend.Object.assign.handlers (/app/dist/server/helpers/requests.js:22:37)\n    at Array.<anonymous> (/app/node_modules/got/dist/source/create.js:67:24)\n    at iterateHandlers (/app/node_modules/got/dist/source/create.js:89:50)\n    at got (/app/node_modules/got/dist/source/create.js:117:20)\n    at doJSONRequest (/app/dist/server/helpers/requests.js:83:12)\n    at /app/dist/server/lib/activitypub/actors/shared/url-to-object.js:39:65\n    at Generator.next (<anonymous>)\n    at /app/node_modules/tslib/tslib.js:117:75\n    at new Promise (<anonymous>)\n    at __awaiter (/app/node_modules/tslib/tslib.js:113:16)\n    at fetchActorTotalItems (/app/dist/server/lib/activitypub/actors/shared/url-to-object.js:37:34)\n    at /app/dist/server/lib/activitypub/actors/shared/url-to-object.js:31:38\n    at Generator.next (<anonymous>)\n    at fulfilled (/app/node_modules/tslib/tslib.js:114:62)\n    at runMicrotasks (<anonymous>)\n    at /app/node_modules/got/dist/source/core/index.js:329:27\n    at new Request (/app/node_modules/got/dist/source/core/index.js:357:11)\n    at makeRequest (/app/node_modules/got/dist/source/as-promise/index.js:35:29)\n    at /app/node_modules/got/dist/source/as-promise/index.js:147:9\n    at /app/node_modules/p-cancelable/index.js:63:11\n    at new Promise (<anonymous>)\n    at new PCancelable (/app/node_modules/p-cancelable/index.js:31:19)\n    at Object.asPromise [as default] (/app/node_modules/got/dist/source/as-promise/index.js:33:21)\n    at getPromiseOrStream (/app/node_modules/got/dist/source/create.js:43:121)\n    at /app/node_modules/got/dist/source/create.js:68:20\n    at got_1.default.extend.Object.assign.handlers (/app/dist/server/helpers/requests.js:22:37)\n    at Array.<anonymous> (/app/node_modules/got/dist/source/create.js:67:24)\n    at iterateHandlers (/app/node_modules/got/dist/source/create.js:89:50)\n    at got (/app/node_modules/got/dist/source/create.js:117:20)\n    at doJSONRequest (/app/dist/server/helpers/requests.js:83:12)\n    at /app/dist/server/lib/activitypub/actors/shared/url-to-object.js:39:65\n    at Generator.next (<anonymous>)\n    at /app/node_modules/tslib/tslib.js:117:75\n    at new Promise (<anonymous>)\n    at __awaiter (/app/node_modules/tslib/tslib.js:113:16)\n    at fetchActorTotalItems (/app/dist/server/lib/activitypub/actors/shared/url-to-object.js:37:34)\n    at /app/dist/server/lib/activitypub/actors/shared/url-to-object.js:31:38\n    at Generator.next (<anonymous>)\n    at fulfilled (/app/node_modules/tslib/tslib.js:114:62)\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (internal/process/task_queues.js:97:5)",
    "message": "Missing `url` property",
    "name": "RequestError"
  }
}
warn[1/30/2022, 11:36:55 AM] Signature from https://oc-ap-dev20.ngrok.io/federation/user/streamer is invalid
{
  "parsed": {
    "scheme": "Signature",
    "params": {
      "keyId": "https://oc-ap-dev20.ngrok.io/federation/user/streamer#main-key",
      "algorithm": "hs2019",
      "headers": [
        "(request-target)",
        "host",
        "date",
        "digest"
      ],
      "signature": "nnlKCGHl5yjo9n7hFPhIN6YFiL52406oJ+VySPwPchiO8rRDNgAcbvR0rU2o6RTZhqiskJhklzZ22VEwvHUMMVZ4r6Ze+ODfhnnTM/P6+aATJn05GyHUY472CUy4hIkbd1azQ0j5xAzZbO3hVFsbjDu+FZRWP2Nuh/leMT+L9WL9BNSEbUNN5VC+bkkTpaetGJJsxiPjpr9KMxX3MjVdJZzSAT6snls0upfme6IoUK2MQOa4SVmv2hd0lKS0nwZvdqiN6GSQU3+it0O2QUybE/fNFbvacNV2TKZKj6ItcpQDl1GaQx2iY63bzZHFX2Yrt/dsDaJ+3p6iCRWmYiE4kQ=="
    },
    "signingString": "(request-target): post /accounts/peertube/inbox\nhost: ocfedtest.hosted.spacebear.ee\ndate: Sun, 30 Jan 2022 19:36:54 GMT\ndigest: SHA-256=iB12EEa1gK7XrSAk5C/yCZsPlQzfEePhN/6U7Y48SXg=",
    "algorithm": "HS2019",
    "keyId": "https://oc-ap-dev20.ngrok.io/federation/user/streamer#main-key"
  }
}

@gabek
Copy link
Member Author

gabek commented Mar 17, 2022

Fix to support Owncast should be in PeerTube 4.1.1. Once my test instance is updated then I can verify this and move on to actually getting some data to federate from Owncast to PeerTube.

@stale
Copy link

stale bot commented Jun 13, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this was a feature request that others have shown no interest in then it's likely to not get implemented due to lack of interest. If others also want to see this feature then now is the time to say something! Thank you for your contributions.

@stale stale bot added the stale label Jun 13, 2022
@gabek gabek added the backlog Ideas that might be cool and can be looked into later. label Jun 13, 2022
@stale stale bot closed this as completed Jun 22, 2022
@gabek gabek reopened this Jun 22, 2022
@gabek gabek removed the stale label Jun 22, 2022
@luzpaz
Copy link
Contributor

luzpaz commented Nov 20, 2023

@gabek This is very cool. Are there any updates you can share ?

@gabek
Copy link
Member Author

gabek commented Nov 20, 2023

There are not. This is currently not possible due to how PeerTube handles following remote actors. It cannot simply follow an Owncast server, regardless of any work we put in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
activitypub-federation Functionality around ActivityPub and fediverse integration backlog Ideas that might be cool and can be looked into later.
Projects
None yet
Development

No branches or pull requests

2 participants