No banners, make a banners thread

/cumg/ - coom.tech

coom.tech - refugee from retarded cuckchan mods. Where technology meets cooming. (NSFW)


New Reply on thread #13
X
Max 20 files0 B total
[New Reply]

[Index] [Catalog] [Banners] [Logs]
Posting mode: Reply [Return]


thumbnail of snis-939.cover.jpg
thumbnail of snis-939.cover.jpg
snis-939.cov... jpg
(186.42 KB, 1055x1500)
Share and discuss cooming-related scripts. This thread is for those who appreciate small-scale programming.  Shell scripts as well as browser userscripts are welcome.

> Wiki

Tips & Tricks:  https://coom.tech/index.php?title=Tricks

> Bash Scripting Resources

Bash Hackers Wiki: https://wiki.bash-hackers.org/
Bash Cheat Sheet: https://shellmagic.xyz/
Bash Reference Sheet: http://mywiki.wooledge.org/BashSheet
Bash Programming: http://mywiki.wooledge.org/BashProgramming
Bash Guide: http://mywiki.wooledge.org/BashGuide
Advanced Bash Scripting Guide: https://tldp.org/LDP/abs/html/abs-guide.html
Pure Bash Bible: https://github.com/dylanaraps/pure-bash-bible
Official Bash Manual: https://www.gnu.org/software/bash/manual/bash.html
Bash Cheat Sheet: https://devhints.io/bash

> UserScript Resources

How To Write A UserScript:  https://simply-how.com/enhance-and-fine-tune-any-web-page-the-complete-user-scripts-guide
Violentmonkey: https://violentmonkey.github.io/
This is one of the simpler versions of the jav script which takes a video code as parameter and streams the video using mpv.  Many derivatives of the original jav shell function were made, but this one is mine.
https://warosu.org/jp/thread/32431725#p32464690

#!/bin/sh

jav_name() {
  if [ -z "$1" ]; then
    read name
  else
    name="$1"
  fi
  echo $name
}

jav_url () {
  name="$(jav_name $1)"
  links="(curl -s "$(curl -s "name/"">https://www2.javhdporn.net/video/$name/" | grep "embedURL" | grep -o "{.*}" | jq '.["@graph"]' | jq -r '.[].embedURL' | sed '/^null$/d' | sed 's/\/v\//\/api\/source\//')" --data-raw 'r=&d=javmvp.com' | jq -r '.data[] | select(.label | contains("720p", "480p","360p")).file' | tail -n1)"
  echo "$links"
}

mpv "$(jav_url $1)"

Example:

jav sspd-152
 >>/15/
The code tag here is no bueno.  It actually corrupted the code by interpreting a $ as a cue to start turning text green, removing the $ in the process.  Let's see what happens if I poste a pastebin URL.

https://pastebin.com/vevLYNWM
I made a userscript for use on endchan /cumg/ to embed pastebins directly on the page like 4chan does.  In the future, maybe we could embed more things beyond pastebin.

https://pastebin.com/RRL8Qp33
 >>/19/
 >>/33/
> pastebins
unfortunately not ideal because pastebin are fucking cucks. it is preferred to post the code directly on the coom.tech wiki and just link to that.
https://coom.tech/index.php?title=Tricks#Shell_Scripts


Please throw a post to the Endchan admins telling them about this issue.
>>>/operate/
 >>/34/
> it is preferred to post the code directly on the coom.tech wiki and just link to that.
It's really hard to format code well on the coom.tech wiki.  The SyntaxHighlight extension (which comes standard with MediaWiki) needs to be enabled at the very least.

https://www.mediawiki.org/wiki/Extension:SyntaxHighlight
 >>/39/
Yeah, I've been doing it in quotes for now but obviously not ideal.
I have no way to contact the wiki host so it's a matter of trying to reach out to him.

I've posted on the discussion page about other stuff, but haven't seen a response yet.
 >>/54/
Use the script from this pastebin.
https://pastebin.com/vevLYNWM

endchan isn't good for posting code due to a bug it has as explained in  >>/19/ .
 >>/54/
 >>/55/
Oh wait, it's really not working.  javhdporn.net changes things up to stop people from downloading.  This could take some time to figure out.
i will write a bash script to download from iwara.
i used iwara-dl from github before, but it's dead. wget should work fine, right?
 >>/57/
i am stuck because the download link doesn't appear in the html page that is downloaded using curl/wget. it appears that the download link is generated with js in the browser and i don't know how to go around this. if you have some ideas - please respond
 >>/57/
 >>/59/
Why re-invent the wheel?
youtube-dl can parse and download from iwara.
If you want to use wget to download then you can use youtube-dl with --get-url flag and pass it to wget.
But if you want to make your own extractor, then you can look up at the extractor and make your own
https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/iwara.py
I'm not sure since I know nothing about python, but it seems to get the video url from iwara API, using JSON.
I think you can parse JSON with jq package.
 >>/60/
i remember it not working for me, but it works now, so whatever
thanks for pointing me in the right direction
What's a good instagram mirror and is there a userscript to redirect instagram profile links to that site?
Here's a Greasemonkey script I wrote that lets you search for a DL Site game on Nyaa in case you're an H game addict like me:

https://github.com/eternalmiko/nyaa_dl_search/blob/main/nyaa_search.js
 >>/56/
Test Subject:
https://www2.javhdporn.net/video/sspd-150/

Using mitmproxy, 
https://mitmproxy.org/
I was able to find the index.m3u8 file, but I don't know how to figure out the URL for it programatically.
https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/index.m3u8

This m3u8 file contains a list of all the parts that can be downloaded and then concatenated together.
The pattern in this case looks like:
https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/cdn-1-v1-a1.ts
https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/cdn-2-v1-a1.ts
https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/cdn-3-v1-a1.ts
all the way to 554.

Alternatively, you can feed the m3u8 URL directly to mpv to stream the video.

mpv https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/index.m3u8
 >>/77/
Download and Combine m3u8 Stream with ffmpeg
https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d


ffmpeg -i https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/index.m3u8 -c copy SSPD-150.mp4
 >>/77/
> I was able to find the index.m3u8 file, but I don't know how to figure out the URL for it programatically.
The devs at javhdporn.net have made it very difficult to inspect the underlying DOM and JS.  
They're using some kind of devtools detector, and 
it's not as easy to disable as it was in this other case:
https://coom.tech/index.php?title=Tricks#Download_Videos_From_Sites_That_Disable_Downloading

One heavy-handed approach to finding the index.m3u8 URL could be to use puppeteer to browse to the page and 
click around while setting up some code to monitor network requests.
https://github.com/puppeteer/puppeteer
https://pptr.dev/#?product=Puppeteer&version=v13.0.1&show=api-class-httprequest
 >>/77/
> mpv https://hls1.gslb.ru/hls/Cen/SSPD-150.mp4/index.m3u8

Out of curiosity, I tried:
mpv ">https://hls1.gslb.ru/hls/Cen/ADN-219.mp4/index.m3u8
and it didn't work.
I don't have mitmproxy setup on the laptop I'm currently using, but 
I wonder what the right m3u8 URL is for ADN-219.
My guess is that the "Cen" part will be different, but everything else would follow the same structure.

https://www2.javhdporn.net/video/adn-219/
Here's a thread in /bant/ that has a list of UserScripts for 4chan.
This doesn't include /cumg/ work, but it's nice to know what else exists.

Original: https://boards.4chan.org/bant/thread/14297446
Archive: https://archived.moe/bant/thread/14297446/
 >>/104/
> https://hls1.gslb.ru/hls/Cen/ADN-219.mp4/index.m3u8

I had a little bad luck.
I guessed the correct URL for ADN-219, but 
the Russian server didn't have the data, so 
it couldn't play it.
I tried ADN-115, and it worked.
We may have found a working pattern for the Russian servers.


mpv https://hls1.gslb.ru/hls/Cen/ADN-115.mp4/index.m3u8


Replace "ADN-115" with the code of the video you want, and
this will work for any video that's hosted on Russian servers.
However, many of their recent uploads are not on their Russian servers.
Similar patterns probably exist for their Dutch, French, and German servers, but
I'll leave that as an exercise for the reader.
If this gets automated,
it'll probably be abused again, because
c00mers don't know when to stop.

PS:  I think the "Cen" stands for censored.
 >>/141/
Test Subject:
https://www2.javhdporn.net/video/natr-673/

It's not going to be that easy for newer uploads.
I tried to find the URLs for NATR-673 which was
uploaded on January 9, 2022, and 
it's available on DE, NL, and FR servers.
I tried the NL servers, and I found 4 files.
One master.m3u8 and 3 index*.m3u8 files for different resolutions.

Master https://www41.akamai-cdn-content.com/hls/tysxfic6ys6oj6cdadgbjw2ioqjuushxic4l2x7iz,jeyxolv7cdnjh2qtjdq,abyxolv7cdoj6lnrmuq,2ayvolv7cdls6dro2qa,.urlset/master.m3u8?client=88.208.39.96
360p https://www41.akamai-cdn-content.com/hls/tysxfic6ys6oj6cdadgbjw2ioqjuushxic4l2x7izjeyxolv7cdnjh2qtjdq/index-v1-a1.m3u8
720p https://www41.akamai-cdn-content.com/hls/tysxfic6ys6oj6cdadgbjw2ioqjuushxic4l2x7izabyxolv7cdoj6lnrmuq/index-v1-a1.m3u8
1080p https://www41.akamai-cdn-content.com/hls/tysxfic6ys6oj6cdadgbjw2ioqjuushxic4l2x7iz2ayvolv7cdls6dro2qa/index-v1-a1.m3u8

The newer files don't follow the simple pattern that the older files do.
 >>/78/
> ffmpeg
...tries to download the video parts as fast as possible which makes it hit the Russian server's rate limit often.
ffmpeg will still power through the errors and eventually finish the download, but
it would be nice to slow ffmpeg down to stay under their rate limit.
There doesn't seem to be an easy way to do that though.
https://github.com/ytdl-org/youtube-dl/issues/29360
This is a repo for collecting various userscripts written by anons.
https://git.coom.tech/g/userscripts
I wrote a userscript for gelbooru, so I can move around and open images with the keyboard, to enhance my cooming™ experience. Any feedback is welcome.

// UserScript
// @name        Keyboard controls for Gelbooru
// @namespace   Booru
// @match       https://gelbooru.com/index.php?page=*
// @grant       none
// @version     1.0
// @author      anon
// @description 
// /UserScript

const markedBorder = 'solid black 2px';

const search = document.getElementById('tags-search');
const images = document.getElementsByClassName('thumbnail-preview');
const imageHeight = images[0].clientHeight;

let selectedIndex = 0;

const getImagesPerRow = () => {
    const baseOffset = images[0].getBoundingClientRect().y;

    for(let i = 1; i  baseOffset)
            return i;
    }

    return -1;
};

const isOutsideViewPort = (img) => {
    const rect = img.getBoundingClientRect();

    return (rect.top > (window.innerHeight  document.documentElement.clientHeight)) 
        (rect.bottom  {
    // if we're above images.length - 1, then 
    images[selectedIndex].style.border = '';

    // update the indices
    selectedIndex = i;

    images[selectedIndex].style.border = markedBorder;

    if(isOutsideViewPort(images[selectedIndex]))
        images[selectedIndex].scrollIntoView(false);
};

const openSelected = () => {
    const link = images[selectedIndex].getElementsByTagName('a')[0].href;
    window.open(link);
};

document.addEventListener('keydown', (event) => {
    if(document.activeElement ! search) {
        if(event.ctrlKey) {
            const paginator = document.getElementById('paginator');
            const links = Array.from(paginator.children);

            // there's only one b element
            const currentPageIndex = links.findIndex(elem => elem.tagName = 'B');
            console.log(currentPageIndex);
            let pageToGoTo = currentPageIndex;

            switch(event.key) {
                case 'ArrowLeft':
                case 'a':
                case 'h':
                    pageToGoTo--;
                    if(pageToGoTo >= 0 && parseInt(links[pageToGoTo]) !== NaN)
                        window.location = links[pageToGoTo].href;
                    break;
                case 'ArrowRight':
                case 'd':
                case 'l':
                    pageToGoTo++;
                    if(pageToGoTo = 0 ? selectedIndex - 1 : selectedIndex);
                    break;
                case 'ArrowRight':
                case 'd':
                case 'l':
                    markSelected(selectedIndex + 1 = 0 ?
                        selectedIndex - imagesPerRow :
                        selectedIndex);
                    break;
                case 'ArrowDown':
                case 's':
                case 'j':
                    markSelected(selectedIndex + imagesPerRow < images.length ?
                        selectedIndex + imagesPerRow :
                        images.length - 1);
                    break;
                case 'Enter':
                    openSelected();
                default:
                    break;
        
hacked together a tiny userscript to automatically reveal nsfw covers on vndb if anyone's interested: https://dpaste.com/9DPDUJWJM
Can someone write a script for patreon/fantia that checks if they have a kemono page and adds a link to it?
This isn't really cooming-related but I started working on a script that lets you put messages into images and then read them out again on soyjak.party

https://dpaste.org/9qFW5
I currently use tweetdeck to export my twitter lists manually which I then can then use with gallery-dl to archive accounts.  Is there a way to do this without tweetdeck?  

The only way I've found is by requesting data from twitter itself, but the problem is the account names are replaced with a string of numbers at the end (their account id).  You can only get the proper name by manually loading each url and waiting for the redirect.  There must be a better way than these two methods surely?
 >>/196/
what's a "legit" cumg user?

 >>/194/
/ttg/ doesn't know what happened either.
most of /cumg/ is bunkering in the matrix chat for now
#coomtech:plan9.rocks
> https://mega.nz/folder/abcde
> key      >immapatreonfaggotjewwhosplitsmymegalink

There has got to be a way to fix this shit...
wrote a userscript that creates a 'watch on javgg' button on onejav.com: https://dpaste.com/5Q2P2HMUN
thumbnail of HomeMade Porn Videos.jpg
thumbnail of HomeMade Porn Videos.jpg
HomeMade... jpg
(454.34 KB, 1134x1600)
HomeMade Porn Videos and Movies Sex on XxxZon.com, This Where True Girls Having Real Sex With Men at Home Made. Free XXX Clips to Watch Online in High Quality HD Online Sex Tube.
https://xxxzon.com/category/homemade-porn-videos/

Post(s) action:


Moderation Help
Scope:
Duration: Days

Ban Type:


61 replies | 3 file
New Reply on thread #13
Max 20 files0 B total