diff options
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/audioarticle | 17 | ||||
-rwxr-xr-x | .local/bin/changewallpaper | 11 | ||||
-rwxr-xr-x | .local/bin/chineseproverb | 18 | ||||
-rwxr-xr-x | .local/bin/convertall | 15 | ||||
-rwxr-xr-x | .local/bin/convertalltype | 15 | ||||
-rwxr-xr-x | .local/bin/delpaper | 10 | ||||
-rwxr-xr-x | .local/bin/downvideo | 13 | ||||
-rwxr-xr-x | .local/bin/getaudio | 10 | ||||
-rwxr-xr-x | .local/bin/getberts | 16 | ||||
-rwxr-xr-x | .local/bin/getgif | 12 | ||||
-rwxr-xr-x | .local/bin/getthumbnail | 8 | ||||
-rwxr-xr-x | .local/bin/getvideo | 9 | ||||
-rwxr-xr-x | .local/bin/getwebpage | 10 | ||||
-rwxr-xr-x | .local/bin/hide | 64 | ||||
-rwxr-xr-x | .local/bin/joblook | 38 | ||||
-rwxr-xr-x | .local/bin/makenoextpng | 10 | ||||
-rwxr-xr-x | .local/bin/maketorrent | 10 | ||||
-rwxr-xr-x | .local/bin/moveallfileshere | 10 | ||||
-rwxr-xr-x | .local/bin/paradown | 10 | ||||
-rwxr-xr-x | .local/bin/playvideo | 26 | ||||
-rwxr-xr-x | .local/bin/qdownvid | 13 | ||||
-rwxr-xr-x | .local/bin/reactionvid | 10 | ||||
-rwxr-xr-x | .local/bin/scuff | 23 | ||||
-rwxr-xr-x | .local/bin/slidepaper | 15 | ||||
-rwxr-xr-x | .local/bin/sortunsorted | 78 | ||||
-rwxr-xr-x | .local/bin/videoaudioloop | 10 | ||||
-rwxr-xr-x | .local/bin/ytmusic | 9 | ||||
-rwxr-xr-x | .local/bin/ytsmall | 10 |
28 files changed, 500 insertions, 0 deletions
diff --git a/.local/bin/audioarticle b/.local/bin/audioarticle new file mode 100755 index 0000000..9b044ba --- /dev/null +++ b/.local/bin/audioarticle @@ -0,0 +1,17 @@ +#!/bin/sh + +#Description: This script takes in a URL, saves the URL's to a file, then passes it through firefox's readable' + +#Axioms: CONTENTDIR + +#Dependencies: https://www.npmjs.com/package/readability-cli https://github.com/coqui-ai/TTS https://packages.debian.org/stretch/festival + +webpageLocation=$(mktemp) +wget -O "$webpageLocation" -c "$1" + +title=$(/home/"$USER"/.npm-global/bin/readable -q -p "title" "$webpageLocation") +article=$(/home/"$USER"/.npm-global/bin/readable -q -p "text-content" "$webpageLocation"|iconv -c -f utf-8 -t ascii -) + +/home/"$USER"/.local/bin/tts --use_cuda true --text "$article" --out_path "/home/$USER/Media/Videos/Content/$title-$(openssl rand -hex 6).wav" || echo "$article" | text2wave > "/home/$USER/Media/Videos/Content/$title-$(openssl rand -hex 6).wav" + +rm "$webpageLocation" diff --git a/.local/bin/changewallpaper b/.local/bin/changewallpaper new file mode 100755 index 0000000..45636f2 --- /dev/null +++ b/.local/bin/changewallpaper @@ -0,0 +1,11 @@ +#!/bin/sh + +#Description: Used to change your wallpaper and theme. + +#Axioms: WALLPAPERS + +#Dependencies: https://github.com/dylanaraps/pywal + +curwal=$(find /home/$USER//Pictures/wallpapers/* -type f | shuf | head -1) +/home/$USER/.local/bin/wal -i "$curwal" +echo "$curwal" > /tmp/curwal diff --git a/.local/bin/chineseproverb b/.local/bin/chineseproverb new file mode 100755 index 0000000..e6c8f8f --- /dev/null +++ b/.local/bin/chineseproverb @@ -0,0 +1,18 @@ +#!/bin/sh + +#Description: Takes in text input (or a random quote from the fortune command), translates it to chinese, translates it back to english, then displays what it made along with the original text. + +#Axioms: https://wiki.debian.org/fortune + +#Dependencies: https://github.com/argosopentech/argos-translate + + +if [ $# = 0 ] +then + china=$(fortune|argos-translate --from-lang en --to-lang zh) +else + china=$(echo "$1"|argos-translate --from-lang en --to-lang zh) +fi +echo "$china" +echo "" +echo "$china"|argos-translate --from-lang zh --to-lang en diff --git a/.local/bin/convertall b/.local/bin/convertall new file mode 100755 index 0000000..7970a6b --- /dev/null +++ b/.local/bin/convertall @@ -0,0 +1,15 @@ +#!/bin/sh + +#Description: Takes input from the user of what type you'd like to convert everything in the current directory to. Using this information, it then uses ffmpeg to convert all files in the folder to that file format. + +#Axioms: + +#Dependencies: https://wiki.debian.org/ffmpeg https://packages.debian.org/sid/parallel + + +if [ -z "$1" ] +then +echo "You didn't give a file type!" +exit 1 +fi + ls -1|grep -v "$1"| parallel ffmpeg -hwaccel auto -i {} -deadline best "{.}.$1" diff --git a/.local/bin/convertalltype b/.local/bin/convertalltype new file mode 100755 index 0000000..702d294 --- /dev/null +++ b/.local/bin/convertalltype @@ -0,0 +1,15 @@ +#!/bin/sh + +#Description: Takes input from the user of two types, one used that will be converted and one to be converted. The first type given is the one converted, the second is what it'll be converted to. Using this information, the program then turns everything of the first time to the second using ffmpeg. + +#Axioms: + +#Dependencies: https://wiki.debian.org/ffmpeg https://packages.debian.org/sid/parallel + + +if [ -z "$1" ] +then +echo "You didn't give a file type!" +exit 1 +fi + ls -1|grep "$1"| parallel ffmpeg -y -hwaccel auto -i {} -deadline best "{.}.$2" diff --git a/.local/bin/delpaper b/.local/bin/delpaper new file mode 100755 index 0000000..b7ef44e --- /dev/null +++ b/.local/bin/delpaper @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Puts the current wallpaper into the trash. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/trash-cli changewallpaper + +trash "$(cat /tmp/curwal)" +changewallpaper diff --git a/.local/bin/downvideo b/.local/bin/downvideo new file mode 100755 index 0000000..31bc8b9 --- /dev/null +++ b/.local/bin/downvideo @@ -0,0 +1,13 @@ +#!/bin/sh + +#Description: Takes a list of URLs, ideally anything supported by yt-dlp, then downloads the best quality version of them to your your content directory. + +#Axioms: CONTENTDIR + +#Dependencies: https://packages.debian.org/sid/yt-dlp + + +for i in "$@" +do +yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$i" & +done diff --git a/.local/bin/getaudio b/.local/bin/getaudio new file mode 100755 index 0000000..8e0ed89 --- /dev/null +++ b/.local/bin/getaudio @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Takes a URL, ideally anything supported by yt-dlp, then downloads the best audio quality version of the URL to your CONTENTDIR. + +#Axioms: CONTENTDIR + +#Dependencies: https://packages.debian.org/sid/yt-dlp + + +yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f bestaudio -ic --add-metadata --sponsorblock-remove all "$1" diff --git a/.local/bin/getberts b/.local/bin/getberts new file mode 100755 index 0000000..ca6543d --- /dev/null +++ b/.local/bin/getberts @@ -0,0 +1,16 @@ +#!/bin/zsh + +#Description: Downloads as many strips from the comic "dilbert" as it can get its hands on. I primarily use it for data science. + +#Axioms: ULTRASPECIFIC + +#Dependencies: https://packages.debian.org/sid/parallel https://packages.debian.org/sid/tor https://packages.debian.org/sid/wget https://packages.debian.org/sid/curl https://github.com/ericchiang/pup + + +getbert() { + echo $1 + url=$(curl "$1"|pup 'img[class="img-responsive img-comic"] attr{src}') || exit 1 + torsocks wget --continue --directory-prefix="/home/$USER/Documents/ComputerScience/programs/lightweight_gan/data/dilbert/" $url +} + +env_parallel --jobs 3 getbert {} ::: $(for year in {1999..2023}; do for month in {01..12}; do for day in {01..31};do echo https://dilbert.com/strip/$year-$month-$day;done;done;done) diff --git a/.local/bin/getgif b/.local/bin/getgif new file mode 100755 index 0000000..4c2c02f --- /dev/null +++ b/.local/bin/getgif @@ -0,0 +1,12 @@ +#!/bin/sh + +#Description: Takes in a link to some content and what you would like to name it, then downloads and converts said content to a gif in your GIFS folder. + +#Axioms: GIFS + +#Dependencies: https://packages.debian.org/sid/ffmpeg https://packages.debian.org/sid/tor + + +link=$1 +name=$2 +torsocks ffmpeg -hwaccel auto -i "$link" -deadline best "/home/$USER/Pictures/gif/$name.gif" diff --git a/.local/bin/getthumbnail b/.local/bin/getthumbnail new file mode 100755 index 0000000..a619ecc --- /dev/null +++ b/.local/bin/getthumbnail @@ -0,0 +1,8 @@ +#!/bin/sh +#Description: Takes in a URL and downloads the thumbnail for it (if it exists) + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/yt-dlp + +yt-dlp --write-thumbnail --skip-download "$1" diff --git a/.local/bin/getvideo b/.local/bin/getvideo new file mode 100755 index 0000000..f948723 --- /dev/null +++ b/.local/bin/getvideo @@ -0,0 +1,9 @@ +#!/bin/sh + +#Description: Takes a URL, ideally the URL should be supported by yt-dlp, then downloads the best quality version of the video the URL corresponds to to your content directory. + +#Axioms: CONTENTDIR + +#Dependencies: https://packages.debian.org/sid/yt-dlp + +yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$1" diff --git a/.local/bin/getwebpage b/.local/bin/getwebpage new file mode 100755 index 0000000..fbabb4d --- /dev/null +++ b/.local/bin/getwebpage @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Downloads a webpage as one, single html file. + +#Axioms: + +#Dependencies: https://github.com/gildas-lormeau/single-file-cli + + +single-file --browser-executable-path=chromium "--browser-args=[\"--headless\"]" "$1" "$2" diff --git a/.local/bin/hide b/.local/bin/hide new file mode 100755 index 0000000..1dc473d --- /dev/null +++ b/.local/bin/hide @@ -0,0 +1,64 @@ +#!/bin/bash + +#Description: +#This hides an image within an image as an overlay. Useful for watermarking images. + +#1 is foreground +#2 is background +#3 is output +#gemsize is an env var for dictating how big or small the overlayed photo should be +#TMPDIR is an env var for dictating where temporary files for this program should be stored + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/imagemagick + + +if [ "$TMPDIR" = "" ] +then + TMPDIR=/tmp +fi + + +rotation=$(echo "$RANDOM%360"|bc) +#widthforeground=$(identify -format "%[fx:w]" "/home/$USER/Pictures/wojak/soy/5486*") +#heightforeground=$(identify -format "%[fx:h]" "/home/$USER/Pictures/wojak/soy/5486*") +widthbackground=$(identify -format "%[fx:w]" "$1") +heightbackground=$(identify -format "%[fx:h]" "$1") + + +if [ "$gemsize" = "" ] +then + foregroundresizefactor=$(echo "$heightbackground*0.15"|bc)x +else + foregroundresizefactor=$(echo "$heightbackground*$gemsize"|bc)x +fi + +foregroundLegalMovingDistanceWidth=$(echo "$widthbackground/2"|bc) +foregroundLegalMovingDistanceHeight=$(echo "$heightbackground/2"|bc) + +foregroundActualMovingDistanceWidth=$(echo "$RANDOM%$foregroundLegalMovingDistanceWidth"|bc) +foregroundActualMovingDistanceHeight=$(echo "$RANDOM%$foregroundLegalMovingDistanceHeight"|bc) + +if [[ $(echo "$RANDOM%2"|bc) == 0 ]] +then + foregroundActualMovingDistanceWidth=-$foregroundActualMovingDistanceWidth +fi + +if [[ $(echo "$RANDOM%2"|bc) == 0 ]] +then + foregroundActualMovingDistanceHeight=-$foregroundActualMovingDistanceHeight +fi + +convert "$2" -alpha set -background none -colorspace RGB -trim -rotate "$rotation" -fuzz 10% -transparent White -resize "$foregroundresizefactor" -trim "$TMPDIR/trans.png" +composite -dissolve 70% -gravity center -geometry +"$foregroundActualMovingDistanceWidth"+"$foregroundActualMovingDistanceHeight" "$TMPDIR/trans.png" "$1" "$3" +rm "$TMPDIR/trans.png" + +echo "$(identify -ping -format '%[width]' "$3")*0.5"|bc +echo "$(identify -ping -format '%[height]' "$3")*0.5"|bc + +finalwidth=$(echo "$(identify -ping -format '%[width]' "$3")*0.5"|bc) +finalheight=$(echo "$(identify -ping -format '%[height]' "$3")*0.5"|bc) +xlocation=$(echo "$finalwidth-$foregroundActualMovingDistanceWidth"|bc) +ylocation=$(echo "$finalheight-$foregroundActualMovingDistanceWidth"|bc) +echo "hidden gem is at ($xlocation, $ylocation)" diff --git a/.local/bin/joblook b/.local/bin/joblook new file mode 100755 index 0000000..a17dd2d --- /dev/null +++ b/.local/bin/joblook @@ -0,0 +1,38 @@ +#!/bin/bash + +#Description: Looks into your JOBDIR's folders for potential jobs, presents them to you, then asks your opinion on them. + +#Axioms: JOBDIR + +#Dependencies: https://git.techchud.xyz/indeedwatcher + + +numofjobs=1 +potentialjob="$(find /home/"$USER"/Documents/Jobs/Potential -maxdepth 1 -type f | shuf | head -1)" +if [[ $# = 0 ]] +then + less "$potentialjob" + read -r -p "Are you interested? (y/n): " Choice + if [ "$Choice" = 'y' ] + then + mv -v "$potentialjob" /home/$USER/Documents/Jobs/Considering/ + elif [ "$Choice" = 'n' ] + then + rm "$potentialjob" + fi +fi + +while [[ "$numofjobs" -le "$1" ]] +do + less "$potentialjob" + read -r -p "Are you interested? (y/n): " Choice + if [ "$Choice" = 'y' ] + then + mv -v "$potentialjob" /home/$USER/Documents/Jobs/Considering/ + elif [ "$Choice" = 'n' ] + then + rm "$potentialjob" + fi + potentialjob="$(find /home/"$USER"/Documents/Jobs/Potential -maxdepth 1 -type f | shuf | head -1)" + numofjobs=$numofjobs+1 +done diff --git a/.local/bin/makenoextpng b/.local/bin/makenoextpng new file mode 100755 index 0000000..c6049fa --- /dev/null +++ b/.local/bin/makenoextpng @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Appends a png extension to all files without an extension. + +#Axioms: + +#Dependencies: https://packages.debian.org/stretch/xargs + + +find . -type f ! -name "*.*" -print0 | xargs --null -I{} mv {} {}.png diff --git a/.local/bin/maketorrent b/.local/bin/maketorrent new file mode 100755 index 0000000..dc4f4bd --- /dev/null +++ b/.local/bin/maketorrent @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Takes in files and makes torrents for them. Outputs the torrent file to the /tmp/ directory. Gets latest public torrent trackers using a curl command for effective distribution. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/mktorrent https://packages.debian.org/sid/curl + + + mktorrent -v -a udp://tracker.coppersurfer.tk:6969/announce -a udp://tracker.opentrackr.org:1337/announce -a $(curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_udp.txt |sed -e '/^$/d'|shuf|head -1) -o "/tmp/$1.torrent" -n "$1" "$1" diff --git a/.local/bin/moveallfileshere b/.local/bin/moveallfileshere new file mode 100755 index 0000000..7761dda --- /dev/null +++ b/.local/bin/moveallfileshere @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Moves all files in all subdirectories to the current directory. + +#Axioms: + +#Dependencies: + + +find . -iname "*.*" -exec mv {} . \; diff --git a/.local/bin/paradown b/.local/bin/paradown new file mode 100755 index 0000000..60573ab --- /dev/null +++ b/.local/bin/paradown @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Takes in a list of sites that are supported by gallery-dl and downloads from them in parallel. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/parallel https://packages.debian.org/sid/gallery-dl + + +parallel -P 3 --bar gallery-dl -R -1 {} ::: $1 diff --git a/.local/bin/playvideo b/.local/bin/playvideo new file mode 100755 index 0000000..8f90a52 --- /dev/null +++ b/.local/bin/playvideo @@ -0,0 +1,26 @@ +#!/bin/sh + +#Description: Shuffles and plays videos from your CONTENTDIR and, upon finishing watching them, removes them. You can pass a number of videos to this program and it'll queue that many videos up for you. + +#Axioms: CONTENTDIR + +#Dependencies: https://packages.debian.org/sid/mpv + + +numofvids=1 +playablevideo="$(find ~/Videos/Content/ -maxdepth 1 -type f | shuf | head -1)" + +if [ $# -eq 0 ] +then + mpv --ontop --geometry=100%:0% --autofit=20%x20% "$playablevideo" + rm "$playablevideo" + exit +fi + +while [ $numofvids -le $1 ] +do + mpv --ontop --geometry=100%:0% --autofit=20%x20% "$playablevideo" + rm "$playablevideo" + playablevideo="$(find ~/Videos/Content/ -maxdepth 1 -type f | shuf | head -1)" + numofvids=$(($numofvids+1)) +done diff --git a/.local/bin/qdownvid b/.local/bin/qdownvid new file mode 100755 index 0000000..759d78b --- /dev/null +++ b/.local/bin/qdownvid @@ -0,0 +1,13 @@ +#!/bin/bash + +#Description: Intakes a list of links, ideally links supported by yt-dlp, and enqueues them for download in task-spooler. The downloaded videos are put into ~/Videos/Content/ upon finishing being processed by yt-dlp. + +#Axioms: CONTENTDIR + +#Dependencies: https://packages.debian.org/sid/yt-dlp https://packages.debian.org/sid/tsp + + +for i in "$@" +do +tsp yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$i" +done diff --git a/.local/bin/reactionvid b/.local/bin/reactionvid new file mode 100755 index 0000000..1469895 --- /dev/null +++ b/.local/bin/reactionvid @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Intakes three parameters. Parameter one is a background video that will have parameter two's video overlayed upon it in the top right. Parameter three will act as the output location for this process. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/ffmpeg + + +ffmpeg -i "$1" -stream_loop -1 -i "$2" -filter_complex "[1:v]scale=250:-1[v2];[0:v][v2]overlay=main_w-overlay_w:5:shortest=1;amerge=inputs=2" -c:v libx264 "$3" || ffmpeg -i "$1" -stream_loop -1 -i "$2" -filter_complex "[1:v]scale=250:-1[v2];[0:v][v2]overlay=main_w-overlay_w:5:shortest=1" -c:v libx264 "$3" diff --git a/.local/bin/scuff b/.local/bin/scuff new file mode 100755 index 0000000..716ac9c --- /dev/null +++ b/.local/bin/scuff @@ -0,0 +1,23 @@ +#!/bin/sh + +#Description: Takes in a video's location as parameter one. Parameter two is the base of the path that several videos created by this program will be outputted to. The outputted videos are scuffed or otherwise degrated in quality to a comedic degree. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/ffmpeg + + +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-true-scuffed.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "treble=g=70" -deadline best "$2-no-amplify.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-treble.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -deadline best "$2-no-audio-scuff.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-no-audio-compress-true-scuffed.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "treble=g=70" -deadline best "$2-no-audio-compress-no-amplify.webm" +ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-audio-compress-no-treble.webm" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-true-scuffed.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "treble=g=70" -deadline best "$2-no-amplify.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-treble.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -deadline best "$2-no-audio-scuff.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-no-audio-compress-true-scuffed.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "treble=g=70" -deadline best "$2-no-audio-compress-no-amplify.ogg" +#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-audio-compress-no-treble.ogg" diff --git a/.local/bin/slidepaper b/.local/bin/slidepaper new file mode 100755 index 0000000..5b8f82b --- /dev/null +++ b/.local/bin/slidepaper @@ -0,0 +1,15 @@ +#!/bin/sh + +#Description: A daemon that changes your wallpaper with changewallpaper every 15 minutes. + +#Axioms: WALLPAPERS + +#Dependencies: changewallpaper + + +cd ~/Pictures/wallpapers/ || exit 1 + +while true; do +/home/"$USER"/Documents/Scripts/changewallpaper & > /dev/null 2>&1 +sleep 15m +done diff --git a/.local/bin/sortunsorted b/.local/bin/sortunsorted new file mode 100755 index 0000000..7691ca3 --- /dev/null +++ b/.local/bin/sortunsorted @@ -0,0 +1,78 @@ +#!/bin/bash + +#Description: This program takes a paramater for the amount of videos you would like to sort from your UNSORTEDIR. If you do not pass a paramater, it will assume that you only wish to sort one video. These videos are then moved to ~/Videos/ with a new name that you provide or deleted depending on your choice. + +#Axioms: UNSORTEDDIR + +#Dependencies: https://packages.debian.org/sid/mpv + +numofvids=1 +playablevideo="$(find ~/Videos/unsorted/ -maxdepth 1 -type f | shuf | head -1)" + +if [[ $# = 0 ]] +then + if [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]] + then + feh "$playablevideo" + else + mpv --ontop --geometry=50%:50% --autofit=50%x50% "$playablevideo" + fi + echo "Video played was: $playablevideo" + read -r -p "Was This quality? (y/n): " Choice + if [ "$Choice" = 'y' ] + then + read -r -p "What would you like to name the video?: " Name + touch "$playablevideo" + if [[ "${playablevideo##*.}" == "gif" ]] + then + mv "$playablevideo" "/home/$USER/Pictures/gif/$Name.${playablevideo##*.}" + elif [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]] + then + mv "$playablevideo" "/home/$USER/Pictures/$Name.${playablevideo##*.}" + else + mv "$playablevideo" "/home/$USER/Videos/$Name.${playablevideo##*.}" + fi + + exit + elif [ "$Choice" = 'n' ] + then + rm "$playablevideo" + else + echo "You did nothing..." + fi + exit + +fi + +while [[ "$numofvids" -le "$1" ]] +do + if [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]] + then + feh "$playablevideo" + else + mpv --ontop --geometry=50%:50% --autofit=50%x50% "$playablevideo" + fi + echo "Video played was: $playablevideo" + read -r -p "Was This quality? (y/n): " Choice + if [ "$Choice" = 'y' ] + then + read -r -p "What would you like to name the video?: " Name + touch "$playablevideo" + if [[ "${playablevideo##*.}" == "gif" ]] + then + mv "$playablevideo" "/home/$USER/Pictures/gif/$Name.${playablevideo##*.}" + elif [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]] + then + mv "$playablevideo" "/home/$USER/Pictures/$Name.${playablevideo##*.}" + else + mv "$playablevideo" "/home/$USER/Videos/$Name.${playablevideo##*.}" + fi + elif [ "$Choice" = 'n' ] + then + rm "$playablevideo" + else + echo "You did nothing..." + fi + playablevideo="$(find ~/Videos/unsorted/ -maxdepth 1 -type f | shuf | head -1)" + numofvids=$numofvids+1 +done diff --git a/.local/bin/videoaudioloop b/.local/bin/videoaudioloop new file mode 100755 index 0000000..0a67ad3 --- /dev/null +++ b/.local/bin/videoaudioloop @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Takes in three parameters. Parameter one is a video, gif, or image that you would like to be looped with audio. Parameter 2 is the audio that you would like to play with the video, gif, or image. Parameter 3 is the output file for the combination of parameter 1 and parameter 2. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/ffmpeg + + +ffmpeg -y -stream_loop -1 -i "$1" -i "$2" -shortest "$3" diff --git a/.local/bin/ytmusic b/.local/bin/ytmusic new file mode 100755 index 0000000..8a725a8 --- /dev/null +++ b/.local/bin/ytmusic @@ -0,0 +1,9 @@ +#!/bin/sh + +#Description: Takes in a yt-dlp compatible URL and extracts the best audio it can from it and converts it to the opus format. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/yt-dlp + +yt-dlp --audio-format opus -x -f 'bestaudio' "$1" diff --git a/.local/bin/ytsmall b/.local/bin/ytsmall new file mode 100755 index 0000000..1e99f27 --- /dev/null +++ b/.local/bin/ytsmall @@ -0,0 +1,10 @@ +#!/bin/sh + +#Description: Takes in a set of yt-dlp compatible URLs and downloads a combination of quality that's lower than 8mb and is merged into one format if possible. + +#Axioms: + +#Dependencies: https://packages.debian.org/sid/yt-dlp + + +yt-dlp -o '%(title)s.%(ext)s' -R inf -N 3 --sponsorblock-remove all -ic --prefer-free-formats --merge-output-format mp4 -f '(bestvideo[filesize<7m]+bestaudio/best[filesize<8M]/bestvideo[filesize<6m]+bestaudio/bestvideo[filesize<5m]+bestaudio/bestvideo[filesize<4m]+bestaudio/bestvideo[filesize<3m]+bestaudio/bestvideo[filesize<2m]+bestaudio/bestvideo[filesize<1m]+bestaudio/worst[filesize<8M])[filesize<8m]' $@ |