peertube_torrent_url/get_torrent_url.sh

64 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
# dep: jj sed curl
domain='xxivproduction.video'
channel='lies_channel'
count=1 # set to 1 for get latest video from channel
peertube_api_get_channel_videos ()
{
curl -S "https://$domain/api/v1/video-channels/$channel/videos?count=$count&skipCount=true"
}
peertube_api_get_video ()
{
curl -S "https://$domain/api/v1/videos/$1"
}
echo 'Getting uuids...'
get_uuids=$(peertube_api_get_channel_videos | jj -l data.#.uuid | sed 's/"//g')
echo 'Done\n'
get_all_torrents ()
{
echo 'Getting names and torrents'
for uuid in $get_uuids; do
echo $uuid
video=$(peertube_api_get_video $uuid)
echo $video | jj name >> "$channel".txt
echo $video | jj -l 'streamingPlaylists' | jj -l 'files.#.torrentUrl' | sed 's/"//g' >> "$channel".txt
sleep 1
done
}
get_latest_torrent_video ()
{
echo 'Getting name and torrent url...'
for uuid in $get_uuids; do
echo $uuid
video=$(peertube_api_get_video $uuid)
echo $video | jj name >> temp_"$channel".txt
echo $video | jj -l 'streamingPlaylists' | jj -l 'files.#.torrentUrl' | sed 's/"//g' >> temp_"$channel".txt
cat "$channel".txt >> temp_"$channel".txt
mv temp_"$channel".txt "$channel".txt
done
}
get_sizes ()
{
echo 'Getting sizes...'
for uuid in $get_uuids; do
echo $uuid
video=$(peertube_api_get_video $uuid)
echo $video | jj -l 'streamingPlaylists' | jj -l 'files.#.size' | sed 's/"//g' >> datasizes
done
awk '{s+=$1} END {printf "%.0f", s}' datasizes
}
if [ $count -ge 2 ]; then
get_all_torrents
elif [ $count -eq 1 ]; then
get_latest_torrent_video
fi
echo '\nDone'