social media crossposting tool. 3rd time's the charm
mastodon misskey crossposting bluesky
at next 162 lines 5.2 kB view raw view rendered
1# Services 2 3## Input 4 5Input services ingest data from other websites. 6 7### Bluesky Jetstream 8 9This service uses a [Jetstream](https://github.com/bluesky-social/jetstream) to listen for posts. 10 11``` 12{ 13 "services": [ 14 { 15 "input": { 16 "type": "bluesky-jetstream", 17 "handle": "bsky.app" 18 }, 19 "outputs": [] 20 } 21 ] 22} 23``` 24 25| Key | Description | 26|----------|-----------------------------------------------------------------------| 27| `handle` | Account handle. Used to resolve `did` and `pds`. | 28| `did` | Account identifier. Can be specified instead of a `handle`. | 29| `pds` | Account host. Optional, will be resolved from `did` if not specified. | 30 31### Mastodon WebSocket 32 33Uses a WebSocket to listen to the home timeline. 34 35``` 36{ 37 "services": [ 38 { 39 "input": { 40 "type": "mastodon-wss", 41 "instance": "https://mastodon.social", 42 "token": "***" 43 }, 44 "outputs": [] 45 } 46 ] 47} 48``` 49 50| Key | Description | 51|----------------------|--------------------------------------------------------| 52| `instance` | Account host. | 53| `token` | Account access token. | 54| `allowed_visibility` | Post visibilities that ware allowed to be crossposted. | 55 56#### Getting a token 57 58**Mastodon:** 59 60- Go to Settings -> Development 61- Click "New Application" 62- Set a name (e.g. xpost), allow "read", "write", "profile" perms. 63- Click on the new application and copy "Your access token" 64 65**Non-Mastodon** 66 67Software like iceshrimp/akkoma can either use https://getauth.thms.uk/?client_name=xpost&scopes=read%20write%20profile or get the token using dev tools on any web client. (any `/api/v*` request, the `authorization` header, copy the value besides `Bearer `) 68 69### Misskey WebSocket 70 71Uses a WebSocket to listen to the home timeline channel. 72 73> [!NOTE] 74> Misskey WSS doesn't support deletes, crossposted posts have to be manually deleted (or look into [bi-directional](./README.md#bi-directional-crossposting) crossposting) 75 76``` 77{ 78 "services": [ 79 { 80 "input": { 81 "type": "misskey-wss", 82 "instance": "https://misskey.io", 83 "token": "***" 84 }, 85 "outputs": [] 86 } 87 ] 88} 89``` 90 91| Key | Description | 92|----------------------|--------------------------------------------------------| 93| `instance` | Account host. | 94| `token` | Account access token. | 95| `allowed_visibility` | Post visibilities that ware allowed to be crossposted. | 96 97#### Getting a token 98 99Use Dev Tools 💔 100 101## Output 102 103### Bluesky 104 105``` 106{ 107 "services": [ 108 { 109 "input": {}, 110 "outputs": [ 111 { 112 "type": "bluesky", 113 "handle": "bsky.app", 114 "password": "***" 115 } 116 ] 117 } 118 ] 119} 120``` 121 122| Key | Description | 123|---------------|---------------------------------------------------------------------------------------------------------| 124| `handle` | Account handle. Used to resolve `did` and `pds`. | 125| `did` | Account identifier. Can be specified instead of a `handle`. | 126| `pds` | Account host. Optional, will be resolved from `did` if not specified. | 127| `password` | Account App Password. | 128| `quote_gate` | Disable ability for others to quote. | 129| `thread_gate` | Limit replies to the post. null - everybody, [] - nobody. accepts "mentioned", "following", "followers" | 130 131#### App Password 132 133Please do not use the main password. 134 135- Go to Settings -> Privacy and Security -> App Passwords 136- Click "Add App Password" 137- Copy the new password (it will not be shown again!) 138 139### Mastodon 140 141``` 142{ 143 "services": [ 144 { 145 "input": {}, 146 "outputs": [ 147 { 148 "type": "mastodon", 149 "instance": "https://mastodon.social", 150 "token": "***" 151 } 152 ] 153 } 154 ] 155} 156``` 157 158| Key | Description | 159|--------------|--------------------------------------------------------| 160| `instance` | Account host. | 161| `token` | Account access token. | 162| `visibility` | What visibility to set for crossposted posts |