CommandLineFU RSS

All commands

A repository for the most elegant and useful UNIX commands. Great commands can be shared, discussed and voted on to provide a comprehensive resource for working from the command-line


Generate a GIF image from video file

[2024-03-18 7:34 pm]

$ ffmpeg -ss 30 -t 3 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif The 30 means start extracting frames from 30 seconds into the video. The 3 means extract the next 3 seconds from that point. The fps can be adjusted based on your preferences. The 320 is the width of the gif, the height will be calculated automatically. input.mp4 is the video file, which can be any video file ffmpeg supports. The output.gif is the gif created. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com

$ ffmpeg -ss 30 -t 3 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif The 30 means start extracting frames from 30 seconds into the video. The 3 means extract the next 3 seconds from that point. The fps can be adjusted based on your preferences. The 320 is the width of the gif, the height will be calculated automatically. input.mp4 is the video file, which can be any video file ffmpeg supports. The output.gif is the gif created. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com


Find all the hidden dot files

[2024-03-16 6:47 pm]

$ find ./path_to_dir -type f -name '.*' This begins recursively looking at dot files starting from "./path_to_dir". Then it prints out the names of those files. If you are satisfied with the list of files discovered then you can delete them like so `find ./path_to_dir -type f -name '.*' -exec rm '{}' \;` which executes the removal program against each of those names previously printed. This is useful when you want to remove thumbnail files on Mac OSX/Windows or simply want to reset an app's configuration on Linux. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com

$ find ./path_to_dir -type f -name '.*' This begins recursively looking at dot files starting from "./path_to_dir". Then it prints out the names of those files. If you are satisfied with the list of files discovered then you can delete them like so `find ./path_to_dir -type f -name '.*' -exec rm '{}' \;` which executes the removal program against each of those names previously printed. This is useful when you want to remove thumbnail files on Mac OSX/Windows or simply want to reset an app's configuration on Linux. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com


Create a highly compressed encrypted 7zip file from a directory

[2024-03-16 6:36 pm]

$ 7z a -t7z -mhe=on -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on some_directory.7z some_directory/ Create a 7zip archive named "some_directory.7z" and adds to it the directory "some_directory". The `-mhe=on` is for header encryption, basically it mangles the file names so no one knows whats inside the 7z. If -mhe=on wasn't included, then a person without the password would still be able to view the file names inside the 7z. Having this option ensures confidentiality. To ensure the result is small use lzma2, level 9 compression. Lzma2 fast bytes range from 5 to 272, the higher the number the more aggressive it is at finding repetitive bytes that can be added to the dictionary. Here the fast bytes are set to 64 bytes and the dictionary is 32 MB. Depending on your purposes (the directory size and desired file size), you can be more aggressive with these values. Lastly, `-ms=on` just says concatenate all the individual files and treat them as a singular file when compressing. This leads to a higher compression ratio generally. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com

$ 7z a -t7z -mhe=on -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on some_directory.7z some_directory/ Create a 7zip archive named "some_directory.7z" and adds to it the directory "some_directory". The `-mhe=on` is for header encryption, basically it mangles the file names so no one knows whats inside the 7z. If -mhe=on wasn't included, then a person without the password would still be able to view the file names inside the 7z. Having this option ensures confidentiality. To ensure the result is small use lzma2, level 9 compression. Lzma2 fast bytes range from 5 to 272, the higher the number the more aggressive it is at finding repetitive bytes that can be added to the dictionary. Here the fast bytes are set to 64 bytes and the dictionary is 32 MB. Depending on your purposes (the directory size and desired file size), you can be more aggressive with these values. Lastly, `-ms=on` just says concatenate all the individual files and treat them as a singular file when compressing. This leads to a higher compression ratio generally. View this command to comment, vote or add to favourites View all commands by keyboardsage Diff your entire server config at ScriptRock.com


Disk usage skipping mount points (even top-level ones)

[2024-02-27 8:43 pm]

$ for a in /*; do mountpoint -q -- "$a" || du -shx "$a"; done | sort -h Other solutions that involve doing du -sx /* are incomplete because they will still descend other top-level filesystems are that mounted directly at "/" because the * expands to explicitly include all files and directories in "/", and du will still traverse them even with -x because you asked it to by supplying the directory name as a parameter (indirectly via "*"). View this command to comment, vote or add to favourites View all commands by dmmst19 Diff your entire server config at ScriptRock.com

$ for a in /*; do mountpoint -q -- "$a" || du -shx "$a"; done | sort -h Other solutions that involve doing du -sx /* are incomplete because they will still descend other top-level filesystems are that mounted directly at "/" because the * expands to explicitly include all files and directories in "/", and du will still traverse them even with -x because you asked it to by supplying the directory name as a parameter (indirectly via "*"). View this command to comment, vote or add to favourites View all commands by dmmst19 Diff your entire server config at ScriptRock.com


Generate random port number

[2024-02-19 5:02 pm]

$ shuf -i 1024-65535 -n 1 `shuf` generate random permutations. `-i`, `--input-range=LO-HI` and `-n`, `--head-count=COUNT` output at most COUNT lines View this command to comment, vote or add to favourites View all commands by pabloab Diff your entire server config at ScriptRock.com

$ shuf -i 1024-65535 -n 1 `shuf` generate random permutations. `-i`, `--input-range=LO-HI` and `-n`, `--head-count=COUNT` output at most COUNT lines View this command to comment, vote or add to favourites View all commands by pabloab Diff your entire server config at ScriptRock.com


Assign top-level JSON entries to shell variables

[2023-09-25 10:11 pm]

$ json='{"a":42, "b":"s t r i n g", "c": []}' ; eval $(echo $json | jq -r 'to_entries | .[] | select(.value | scalars) | .key + "=\"" + (.value | tostring) + "\";"' | tee /dev/tty) A recursive version might be useful too. /dev/tty is used to show which shell variables just got defined. View this command to comment, vote or add to favourites View all commands by penthief Diff your entire server config at ScriptRock.com

$ json='{"a":42, "b":"s t r i n g", "c": []}' ; eval $(echo $json | jq -r 'to_entries | .[] | select(.value | scalars) | .key + "=\"" + (.value | tostring) + "\";"' | tee /dev/tty) A recursive version might be useful too. /dev/tty is used to show which shell variables just got defined. View this command to comment, vote or add to favourites View all commands by penthief Diff your entire server config at ScriptRock.com


MacOS: Make the terminal app always quit when

[2023-09-17 11:41 pm]

$ alias exit="killall Terminal" When you use the "exit" command in a Linux terminal window, it not only closes the terminal window itself but also the terminal emulator app, such as GNOME Terminal or Konsole, that it belongs to. If you use the "exit" command on macOS, however, Terminal.app still shows a dot below its Dock icon and is still running in the background. This alias, when entered into ~/.zshrc, overrides this behavior. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com

$ alias exit="killall Terminal" When you use the "exit" command in a Linux terminal window, it not only closes the terminal window itself but also the terminal emulator app, such as GNOME Terminal or Konsole, that it belongs to. If you use the "exit" command on macOS, however, Terminal.app still shows a dot below its Dock icon and is still running in the background. This alias, when entered into ~/.zshrc, overrides this behavior. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com


Get the beats per minute from an audio track

[2023-09-16 1:55 pm]

$ ffmpeg -loglevel quiet -i "$AUDIO_FILE" -f f32le -ac 1 -ar 44100 - | bpm Requires bpm-tools https://www.pogo.org.uk/~mark/bpm-tools/ View this command to comment, vote or add to favourites View all commands by malathion Diff your entire server config at ScriptRock.com

$ ffmpeg -loglevel quiet -i "$AUDIO_FILE" -f f32le -ac 1 -ar 44100 - | bpm Requires bpm-tools https://www.pogo.org.uk/~mark/bpm-tools/ View this command to comment, vote or add to favourites View all commands by malathion Diff your entire server config at ScriptRock.com


Download Video & extract only a specific Time of it

[2023-09-16 1:04 pm]

$ yt-dlp --external-downloader ffmpeg --external-downloader-args "-ss 00:05:00 -t 00:01:00" "https://www.youtube.com/watch?v=Y6DGABIcB3w" Because this does not download more of the video than necessary, it is faster (especially with long videos). View this command to comment, vote or add to favourites View all commands by malathion Diff your entire server config at ScriptRock.com

$ yt-dlp --external-downloader ffmpeg --external-downloader-args "-ss 00:05:00 -t 00:01:00" "https://www.youtube.com/watch?v=Y6DGABIcB3w" Because this does not download more of the video than necessary, it is faster (especially with long videos). View this command to comment, vote or add to favourites View all commands by malathion Diff your entire server config at ScriptRock.com


Show temp of all disk

[2023-09-10 1:24 pm]

$ grep -l "drivetemp" /sys/class/hwmon/hwmon*/name | while read f; do printf "%s(%-.2s°C)\n" "`<${f%/*}/device/model`" "`<${f%/*}/temp1_input`"; done Show temp of all disk with the drivetemp module activate View this command to comment, vote or add to favourites View all commands by kokoparkletal Diff your entire server config at ScriptRock.com

$ grep -l "drivetemp" /sys/class/hwmon/hwmon*/name | while read f; do printf "%s(%-.2s°C)\n" "`<${f%/*}/device/model`" "`<${f%/*}/temp1_input`"; done Show temp of all disk with the drivetemp module activate View this command to comment, vote or add to favourites View all commands by kokoparkletal Diff your entire server config at ScriptRock.com


Linux clear restrictions of a user's password

[2023-08-21 1:37 am]

$ chage -E -1 -m 0 -M -1 -W -1 user01 Command that clears the expiration restrictions of a user's password View this command to comment, vote or add to favourites View all commands by net0bsd Diff your entire server config at ScriptRock.com

$ chage -E -1 -m 0 -M -1 -W -1 user01 Command that clears the expiration restrictions of a user's password View this command to comment, vote or add to favourites View all commands by net0bsd Diff your entire server config at ScriptRock.com


Monitor changed files into a log file, with day rotation, using fswatch (MacOS)

[2023-08-17 6:06 pm]

$ fswatch --exclude=.git/* --exclude=.settings --event-flags --event-flag-separator=\; -t -f '%Y-%m-%d %H:%M:%S' . >> ./.file_changes_$(date +"%Y-%m-%d" | sed s/-//g).log This command monitors changes in the current folder structure (subfolders included) and files, and log it into a hidden file in the same folder, called `.file_changes_YYMMDD.log`. Modify the `--exclude` parameters to define what should be skipped. View this command to comment, vote or add to favourites View all commands by paulera Diff your entire server config at ScriptRock.com

$ fswatch --exclude=.git/* --exclude=.settings --event-flags --event-flag-separator=\; -t -f '%Y-%m-%d %H:%M:%S' . >> ./.file_changes_$(date +"%Y-%m-%d" | sed s/-//g).log This command monitors changes in the current folder structure (subfolders included) and files, and log it into a hidden file in the same folder, called `.file_changes_YYMMDD.log`. Modify the `--exclude` parameters to define what should be skipped. View this command to comment, vote or add to favourites View all commands by paulera Diff your entire server config at ScriptRock.com


Compute newest kernel version from Makefile on Torvalds' git repository

[2023-08-10 5:25 pm]

$ curl -s -o - https://raw.githubusercontent.com/torvalds/linux/master/Makefile | head -n5 | grep -E '\ \=\ [0-9]{1,}' | cut -d' ' -f3 | tr '\n' '.' | sed -e "s/\.$//" The platform-agnostic version of https://www.commandlinefu.com/commands/view/25276/compute-newest-kernel-version-from-makefile-on-torvalds-git-repository because macOS doesn't have wget installed View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com

$ curl -s -o - https://raw.githubusercontent.com/torvalds/linux/master/Makefile | head -n5 | grep -E '\ \=\ [0-9]{1,}' | cut -d' ' -f3 | tr '\n' '.' | sed -e "s/\.$//" The platform-agnostic version of https://www.commandlinefu.com/commands/view/25276/compute-newest-kernel-version-from-makefile-on-torvalds-git-repository because macOS doesn't have wget installed View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com


Sudoers: bypass all password prompts

[2023-08-10 5:19 pm]

$ echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers If you as the sole user of a computer at home only don’t like needing to repeatedly type a password each time you run a command, using ‘NOPASSWD’ in sudoers for your specific username is for you. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com

$ echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers If you as the sole user of a computer at home only don’t like needing to repeatedly type a password each time you run a command, using ‘NOPASSWD’ in sudoers for your specific username is for you. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com


Prepend section dates to individual entries in a summary log file

[2023-07-11 6:20 pm]

$ gawk 'match($0, /^\s*([0-9]{2}\/[0-9]{2}\/[0-9]{4})\s*/, m) {prev_date=m[1]} /SEARCHSTRING/ {print prev_date, ",", $1 $2, ",", $3, "," $5}' inputfile.txt Searches for dates on lines by themselves. Uses that date to prepend all rows that contain SEARCHSTRING with the date, until it reaches another line with a date by itself. This fixed an issue with a specific log export where there would be a date, followed by all of the entries for that date. View this command to comment, vote or add to favourites View all commands by jtopian Diff your entire server config at ScriptRock.com

$ gawk 'match($0, /^\s*([0-9]{2}\/[0-9]{2}\/[0-9]{4})\s*/, m) {prev_date=m[1]} /SEARCHSTRING/ {print prev_date, ",", $1 $2, ",", $3, "," $5}' inputfile.txt Searches for dates on lines by themselves. Uses that date to prepend all rows that contain SEARCHSTRING with the date, until it reaches another line with a date by itself. This fixed an issue with a specific log export where there would be a date, followed by all of the entries for that date. View this command to comment, vote or add to favourites View all commands by jtopian Diff your entire server config at ScriptRock.com


Print macOS current power delivery max wattage

[2023-07-06 12:58 pm]

$ system_profiler SPPowerDataType | grep Wattage Print the max wattage of the current power draw source for a Mac. Note that the current amount of watts drawn may be lower, particularly if a high-wattage adapter is plugged into a Mac that has a full battery. View this command to comment, vote or add to favourites View all commands by lgarron Diff your entire server config at ScriptRock.com

$ system_profiler SPPowerDataType | grep Wattage Print the max wattage of the current power draw source for a Mac. Note that the current amount of watts drawn may be lower, particularly if a high-wattage adapter is plugged into a Mac that has a full battery. View this command to comment, vote or add to favourites View all commands by lgarron Diff your entire server config at ScriptRock.com


Create a visually twisted effect by alternating the direction of the "staples" effect vertically. The effect is achieved by moving odd-numbered lines from right to left and even-numbered lines from left to right.

[2023-07-03 7:47 pm]

$ while :; do for ((i=0;i<$(tput cols);i++));do clear;for ((j=0;j<$(tput lines);j++));do printf "\e[48;5;$((RANDOM%256))m%*s\e[0m\n" $(((j+i)%2?$(tput cols)-i:i)) "";done;sleep 0.05;done;done The effect is achieved by moving odd-numbered lines from right to left and even-numbered lines from left to right. For odd-numbered lines (with an index j), the ((j + i) % 2 == 0) condition is satisfied. In this case, the line width is set to i, resulting in the line moving from left to right. For even-numbered lines, the ((j + i) % 2 == 0) condition is not satisfied. The line width is set to $(tput cols) - i, causing the line to move from right to left. This alternating direction of movement creates a twisted visual effect as the lines appear to move in opposite directions. The code runs in a continuous loop, repeatedly updating the lines with changing background colors. There is a slight pause of 0.05 seconds between each iteration to control the speed of the animation. View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com

$ while :; do for ((i=0;i<$(tput cols);i++));do clear;for ((j=0;j<$(tput lines);j++));do printf "\e[48;5;$((RANDOM%256))m%*s\e[0m\n" $(((j+i)%2?$(tput cols)-i:i)) "";done;sleep 0.05;done;done The effect is achieved by moving odd-numbered lines from right to left and even-numbered lines from left to right. For odd-numbered lines (with an index j), the ((j + i) % 2 == 0) condition is satisfied. In this case, the line width is set to i, resulting in the line moving from left to right. For even-numbered lines, the ((j + i) % 2 == 0) condition is not satisfied. The line width is set to $(tput cols) - i, causing the line to move from right to left. This alternating direction of movement creates a twisted visual effect as the lines appear to move in opposite directions. The code runs in a continuous loop, repeatedly updating the lines with changing background colors. There is a slight pause of 0.05 seconds between each iteration to control the speed of the animation. View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com


Fill the screen with randomly colored lines

[2023-07-03 7:38 pm]

$ while :; do printf "\e[48;2;$((RANDOM % 256));$((RANDOM % 256));$((RANDOM % 256))m%*s\e[0m" $(tput cols) ""; sleep 0.1; done This one-liner fills the screen with randomly colored lines. View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com

$ while :; do printf "\e[48;2;$((RANDOM % 256));$((RANDOM % 256));$((RANDOM % 256))m%*s\e[0m" $(tput cols) ""; sleep 0.1; done This one-liner fills the screen with randomly colored lines. View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com


Scan LAN and get Windows host names

[2023-06-23 5:50 am]

$ nmap -sn --system-dns 192.168.0.1-253 View this command to comment, vote or add to favourites View all commands by swarzynski Diff your entire server config at ScriptRock.com

$ nmap -sn --system-dns 192.168.0.1-253 View this command to comment, vote or add to favourites View all commands by swarzynski Diff your entire server config at ScriptRock.com


Check if a domain is available for purchase

[2023-06-21 10:01 am]

$ function canibuy { whois "$1" 2>/dev/null | grep -q 'Registrant' && echo "taken" || echo "available" } A quick alias to check if a domain is already registered or if it's available for purchase. View this command to comment, vote or add to favourites View all commands by tyzbit Diff your entire server config at ScriptRock.com

$ function canibuy { whois "$1" 2>/dev/null | grep -q 'Registrant' && echo "taken" || echo "available" } A quick alias to check if a domain is already registered or if it's available for purchase. View this command to comment, vote or add to favourites View all commands by tyzbit Diff your entire server config at ScriptRock.com


This command provides more color variety for the rainbow-like appearance by generating random color codes from 16 to 231 for adb logcat.

[2023-05-30 11:48 am]

$ adb logcat|awk '{ i srand();for (i = 1; i <= NF; i++) { color = int(rand() * 216) + 16; printf "\033[38;5;%dm%s\033[0m ", color, $i;} printf "\n"; }' View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com

$ adb logcat|awk '{ i srand();for (i = 1; i <= NF; i++) { color = int(rand() * 216) + 16; printf "\033[38;5;%dm%s\033[0m ", color, $i;} printf "\n"; }' View this command to comment, vote or add to favourites View all commands by wuseman1 Diff your entire server config at ScriptRock.com


Disassemble all ACPI tables on your system

[2023-04-16 12:33 am]

$ for i in /sys/firmware/acpi/tables/*; do sudo iasl -p $PWD/$(echo $i | cut -d\/ -f6) $i && sudo chown $USER $(echo $i | cut -d\/ -f6); done The fact that Linux exposes the ACPI tables to the user via sysfs makes them a gold mine of valuable hardware information for low-level developers. Looping through each of them and disassembling them all makes them even more valuable. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com

$ for i in /sys/firmware/acpi/tables/*; do sudo iasl -p $PWD/$(echo $i | cut -d\/ -f6) $i && sudo chown $USER $(echo $i | cut -d\/ -f6); done The fact that Linux exposes the ACPI tables to the user via sysfs makes them a gold mine of valuable hardware information for low-level developers. Looping through each of them and disassembling them all makes them even more valuable. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com


Polkit: Force KDE apps to always recognize your display

[2023-04-13 12:37 am]

$ alias pkexec=“pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true” KDE apps expect certain variables to be set, and unfortunately pkexec doesn’t set them by default. So, by setting this alias, it becomes possible to run, e.g. “pkexec kate” or “pkexec dolphin” and it’ll actually run. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com

$ alias pkexec=“pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true” KDE apps expect certain variables to be set, and unfortunately pkexec doesn’t set them by default. So, by setting this alias, it becomes possible to run, e.g. “pkexec kate” or “pkexec dolphin” and it’ll actually run. View this command to comment, vote or add to favourites View all commands by realkstrawn93 Diff your entire server config at ScriptRock.com


Loops over files, runs a command, dumps output to a file

[2023-04-12 9:17 am]

$ for f in *php; do echo $f >> ~/temp/errors.txt; phpcsw $f | grep GET >> ~/temp/errors.txt; done In this case I'm selecting all php files in a dir, then echoing the filename and piping it to ~/temp/errors.txt. Then I'm running my alias for PHPCS (WordPress flags in my alias), then piping the PHPCS output to grep and looking for GET. Then I'm piping that output to the same file as above. This gets a list of files and under each file the GET security errors for that file. Extrapolate this to run any command on any list of files and pipe the output to a file. Remove the >> ~/temp/errors.txt to get output to the screen rather than to a file. View this command to comment, vote or add to favourites View all commands by topher1kenobe Diff your entire server config at ScriptRock.com

$ for f in *php; do echo $f >> ~/temp/errors.txt; phpcsw $f | grep GET >> ~/temp/errors.txt; done In this case I'm selecting all php files in a dir, then echoing the filename and piping it to ~/temp/errors.txt. Then I'm running my alias for PHPCS (WordPress flags in my alias), then piping the PHPCS output to grep and looking for GET. Then I'm piping that output to the same file as above. This gets a list of files and under each file the GET security errors for that file. Extrapolate this to run any command on any list of files and pipe the output to a file. Remove the >> ~/temp/errors.txt to get output to the screen rather than to a file. View this command to comment, vote or add to favourites View all commands by topher1kenobe Diff your entire server config at ScriptRock.com


Download Video & extract only a specific Time of it

[2023-04-01 12:39 pm]

$ fmpeg $(yt-dlp -g 'https://de.pornhub.com/view_video.php?viewkey=ph637366806d6eb' | sed 's/^/-ss 00:05 -i /') -t 01:00 -c copy out.mp4 View this command to comment, vote or add to favourites View all commands by dbiesecke Diff your entire server config at ScriptRock.com

$ fmpeg $(yt-dlp -g 'https://de.pornhub.com/view_video.php?viewkey=ph637366806d6eb' | sed 's/^/-ss 00:05 -i /') -t 01:00 -c copy out.mp4 View this command to comment, vote or add to favourites View all commands by dbiesecke Diff your entire server config at ScriptRock.com