Initial implementation

This commit is contained in:
Alex Thomassen 2023-07-01 22:58:33 +00:00
commit d6d1d7ac96
Signed by: Alex
GPG Key ID: 10BD786B5F6FF5DE
3 changed files with 42 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.json
data
!data/.gitkeep

19
GfycatGrab.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )";
FALLBACK_DATA_DIR="${SCRIPT_DIR}/data";
if [[ -z "${GFYCAT_DIR}" ]]; then
echo "GFYCAT_DIR not set, using: ${FALLBACK_DATA_DIR}";
GFYCAT_DIR="${FALLBACK_DATA_DIR}";
fi
for json in $(ls *.json);
do
urls="$(cat $json | jq -r '.gfycats[] | .mp4Url')";
for url in $urls;
do
echo "Downloading $url";
curl --output-dir "${GFYCAT_DIR}" -O -C - "${url}";
done
done

19
README.md Normal file
View File

@ -0,0 +1,19 @@
# GfycatGrab
Budget way of grabbing all Gfycats from your account.
## Requirements
1. jq
2. curl
- `v7.73.0+` since this script uses the `--output-dir` flag: https://daniel.haxx.se/blog/2020/09/10/store-the-curl-output-over-there/
## To use the script
1. Visit your Gfycat profile page, with your browser's developer console (network tab) open
2. Filter URLs by `/me/gfycats`
3. Copy the JSON response from the "GET" request. Save it as `any-name.json`
4. If you have more than 100 GIFs in your profile, repeat steps 1-3 for the next page (scroll to bottom), and save it as `any-name-2.json`
5. Run the script: `./GfycatGrab.sh`
- By default the script downloads to `./data` (relative to where the script is saved).
- If you want to download to a different directory, specify the `GFYCAT_DIR` environment variable: `GFYCAT_DIR=/path/to/where/you/want/download/files ./GfycatGrab.sh`