Status |
---|
Tech Stack | |
---|---|
You can view additional details on this page
The primary goal of streamsnip is to streamline the clipping process, addressing challenges faced by one of my favorite streamers. Here's how you can make the most of it:
This program is a free for everyone as of now. But you can contribute.
Most of the donations goes back to development and hosting costing.
!addcom !clip $(urlfetch https://streamsnip.com/clip/$(chatid)/$(querystring)?delay=-40)
Just adding this command will get you started. but if you want to have a discord message. or customization then read below.
this is the most famous way of using it. Simply copy paste this in your chat.
Go to Nightbot Dashboard and add command like this
If you want to send a discord message. then I would need to add a webhook URL alongside the youtube channel ID. for that fill this form or contact me here.
Contact | Discord |
---|---|
showlink
(default: true) - Display the link where all clips can be viewed.screenshot
(default: false) - Enable or disable screenshot capture. If enabled the nightbot may not get response in given time and will say "Timed out" message. but it will still clip.delay
(default: 0) - Introduce an artificial delay to the command. Useful for scheduling links in the future or past.force_desc
(default: false) - if set to true will deny any clip that doesn't have a title (description as its called in backend). please ensure that your viewers know this is the case. else you will miss out on a lot of clips
silent
(default: 2||Highest) - Level of the clipping message. see example below.
private
(default: false) - If set to true. the clips made are not shown on the web nor impact stats. if you don't want your channel to show up on website. you use it. This overridesilent
and returns just clipped 😉
webhook
(default: None) - You can provide your own webhook URL instead of the one provided earlier (if you did). By combining this withprivate
, you can create completely anonymous clips in a private channel.
To use your webhook URL, it should be in the format of webhook_id/webhook_token. For example, if your webhook URL is:
https://discord.com/api/webhooks/1211440693168447599/ieU15QcFI_PcAun88TFGpUuRMK6E7Me14jioxB1mbJrRU6ay3XI8jByeEk3XKlVKr8_s
You would pass webhook=1211440693168447599/ieU15QcFI_PcAun88TFGpUuRMK6E7Me14jioxB1mbJrRU6ay3XI8jByeEk3XKlVKr8_s
as the argument.
-
message_level
(default: 0) - Customize how the discord message should look like. to support "anonymity" -
take_delays
(default: false) - Do you consider your viewers to be smarter than average person ? if you turn this on. the first and lastword
will be evaluted to add/subtract delay. The following screenshot was taken with delay=0. but it still gave a delay of20 seconds
as the author wrote-20
as first word.
Remember. this doesn't Override the delay parameter. it only add the delay. so if you had -40 indelay
arg. then delay in the below example would be -60. and not -40.
Here's one example using all of it.
https://streamsnip.com/clip/$(chatid)/$(querystring)?showlink=false&screenshot=true&delay=-30&private=true&webhook=1211440693168447599/ieU15QcFI_PcAun88TFGpUuRMK6E7Me14jioxB1mbJrRU6ay3XI8jByeEk3XKlVKr8_s&message_level=3&take_delays=true
https://streamsnip.com/clip/$(chatid)/$(querystring)?showlink=false
- No links.https://streamsnip.com/clip/$(chatid)/$(querystring)?showlink=false&screenshot=true
- No links, but with screenshots.https://streamsnip.com/clip/$(chatid)/$(querystring)?screenshot=true
- Screenshots are given.https://streamsnip.com/clip/$(chatid)/$(querystring)?delay=-20
- Set a delay in the past by 20 seconds.
!delete <clip_id>
- delete the given clip(s)
!addcom !delete $(urlfetch https://streamsnip.com/delete/$(query)) -ul=moderator
-ul=moderator
part, otherwise anyone can delete your clips.
silent
(default: 2||Highest) - Level of returning message. 0 - no message. 1 - clip id(s) that was/were deleted. else no change.
!edit <clip_id> <new_title>
- edit the title of the given clip
!addcom !edit $(urlfetch https://streamsnip.com/edit/$(querystring)) -ul=moderator
-ul=moderator
part, otherwise anyone can edit your clips.
silent
(default: 2||Highest) - Level of returning message. 0 - no message. 1 - clip id that was edited. else no change.
!clips
or!export
- gives link where you can see all the clips
!addcom !export $(urlfetch https://streamsnip.com/export)
!search
gives the last clip that had the query in in it.
!addcom !search $(urlfetch https://streamsnip.com/search/$(querystring))
level
- (default: 0) - What level of answer you want. Here's a screenshot that showcase it.
!uptime
gives uptime of the latest stream of the channel that called this command
!addcom !uptime $(urlfetch https://streamsnip.com/uptime)
level
- (default: 0) - What level of answer you want. Here's a screenshot that showcase it.
!recent
gives last 5 clip details in chat. in format of| <clip_id> <description> |
!addcom !recent $(urlfetch https://streamsnip.com/recent?count=$(1))
count
- (default: 5) - How many records you want.
!clipstats
gives a brief stats of number of clips in the chat. total and by the user who ran the command.
!addcom !clipstats $(urlfetch https://streamsnip.com/nstats)
Click me to open advanced options.
Idea from here, You can combine !search command to give out timestamp to particular events in the stream
A combo can look like this
!addcom !clipkill $(urlfetch https://streamsnip.com/clip/$(chatid)/kill-automated)
!addcom !lastkill $(urlfetch https://streamsnip.com/search/kill-automated)
Want more advanced ? here
There is one more endpoint named /searchx/<clip-desc>
that returns JSON of the clip with that clip-desc.
THIS IS JUST 1 EXAMPLE. SKY IS THE LIMIT HERE
!addcom !lastkilltime $(eval clip=$(urlfetch json https://streamsnip.com/searchx/kill-automated); clip['hms'])
- Clone the repo
- Install requirements -
pip install -r requirements.txt
- (Optional) Install ffmpeg and ytdlp for screenshot to work.
- CONFIG - edit config.sample.json to config.json and insert few keys in it.
password
to use at/admin
page and/add
route.
- Run by doing.
python main.py
- (Optional) You can run.
helper/maintainer.py
. for this you will needmanagement_webhook
in config.json to send you backup and logs to your discord. - For nightbot. you need to replace
streamsnip.com
to your ip. and usehttp
instead ofhttps
.
-
You can use
-ul=userlevel
to limit clipping to specific user levels (e.g., mods). Find user levels here to reduce spam and grant clipping access to specific individuals. -
You can add a timer from here. to remind users to clip moments regularly
Ex.
Saw something amazing ⭐? Type !clip to clip it and ship it 📩to Discord. (Also add a useful title too after the command (Optional but Preferred))