2022-08-25 17:21:39 +02:00
|
|
|
#!/bin/bash
|
|
|
|
########################################################################
|
2024-04-20 22:27:36 +02:00
|
|
|
# Version: 1.0
|
2022-08-25 17:21:39 +02:00
|
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
|
|
########################################################################
|
|
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|
|
|
ME="${0##*/}"
|
2022-12-30 17:07:08 +01:00
|
|
|
|
|
|
|
. "${MY_PATH}/../tools/my.sh"
|
|
|
|
|
2022-10-12 00:44:24 +02:00
|
|
|
echo "-----"
|
2022-10-11 17:28:15 +02:00
|
|
|
echo "$ME RUNNING"
|
2022-08-26 16:02:56 +02:00
|
|
|
|
2022-12-30 17:07:08 +01:00
|
|
|
# ASTROBOT FIRST SPECIFIC PROCESS
|
2022-10-10 16:21:33 +02:00
|
|
|
# "Copier youtube" + (voeu) => CopierYoutube (G1Voeu G1CopierYoutube) = ASTROBOT copy Ŋ1 "(G1CopierYoutube)"
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2022-08-26 16:02:56 +02:00
|
|
|
|
2022-08-25 17:21:39 +02:00
|
|
|
INDEX="$1"
|
2022-12-04 17:29:50 +01:00
|
|
|
[[ ! ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1
|
2022-12-30 17:07:08 +01:00
|
|
|
[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2022-12-10 19:25:36 +01:00
|
|
|
PLAYER="$2"
|
2023-04-25 18:11:40 +02:00
|
|
|
[[ ! ${PLAYER} ]] && echo "ERROR - Please provide IPFS publish key" && exit 1
|
2022-12-10 18:33:41 +01:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
|
|
|
|
[[ ! $ASTRONAUTENS ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
|
2022-12-27 12:56:35 +01:00
|
|
|
|
2022-11-27 18:06:24 +01:00
|
|
|
# Extract tag=tube from TW
|
2022-12-30 17:07:08 +01:00
|
|
|
MOATS="$3"
|
|
|
|
[[ ! $MOATS ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
2022-12-10 18:33:41 +01:00
|
|
|
|
|
|
|
###################################################################
|
|
|
|
## CREATE APP NODE PLAYER PUBLICATION DIRECTORY
|
|
|
|
###################################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
mkdir -p ${HOME}/.zen/tmp/${IPFSNODEID}/G1CopierYoutube/${PLAYER}/
|
|
|
|
mkdir -p ${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/
|
2022-10-10 00:39:07 +02:00
|
|
|
|
2022-10-10 01:46:04 +02:00
|
|
|
###################################################################
|
2022-12-04 17:29:50 +01:00
|
|
|
## tag[CopierYoutube] EXTRACT ~/.zen/tmp/CopierYoutube.json FROM TW
|
2022-10-10 16:21:33 +02:00
|
|
|
###################################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
rm -f ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.json
|
2022-10-10 01:46:04 +02:00
|
|
|
tiddlywiki --load ${INDEX} \
|
2023-04-25 18:11:40 +02:00
|
|
|
--output ~/.zen/game/players/${PLAYER}/G1CopierYoutube \
|
2022-10-10 16:21:33 +02:00
|
|
|
--render '.' 'CopierYoutube.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[CopierYoutube]]'
|
2022-10-10 01:46:04 +02:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "DEBUG : cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.json | jq -r"
|
2024-04-20 22:27:36 +02:00
|
|
|
## CHEK FOR MP3 TAG
|
|
|
|
TAGS=()
|
|
|
|
TAGS=($(cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.json | jq -r .[].tags))
|
|
|
|
echo "TAGS :${#TAGS[@]}: ${TAGS[@]}"
|
|
|
|
isMP3=$(echo ${TAGS[@] | grep -w "MP3")
|
|
|
|
|
|
|
|
## GET USER BROWSER for YOUTUBE COOKIES
|
|
|
|
BZER=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) ## GET cookies-from-browser
|
|
|
|
[[ $BZER ]] && BROWSER="--cookies-from-browser $BZER " || BROWSER=""
|
|
|
|
[[ ! $isLAN ]] && BROWSER=""
|
2022-11-16 00:29:08 +01:00
|
|
|
|
2022-10-10 01:46:04 +02:00
|
|
|
###################################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
## URL EXTRACTION & yt-dlp.cache.${PLAYER} upgrade
|
|
|
|
for YURL in $(cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.json | jq -r '.[].text' | grep 'http'); do
|
2023-03-19 20:10:00 +01:00
|
|
|
[[ ! $(echo $YURL | grep "http" ) ]] && echo "$YURL error" && continue
|
2022-12-30 17:07:08 +01:00
|
|
|
echo "G1CopierYoutube : $YURL"
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "Extracting video playlist into yt-dlp.cache.${PLAYER}"
|
2022-12-11 21:09:53 +01:00
|
|
|
|
|
|
|
### yt-dlp.command
|
2023-09-11 01:45:42 +02:00
|
|
|
CMD=$(cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command 2>/dev/null | grep -- "$YURL" | tail -n 1)
|
2022-12-11 21:09:53 +01:00
|
|
|
if [[ ! $CMD ]]; then
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "${PLAYER}&$YURL:$MOATS" >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command
|
|
|
|
echo "NOUVEAU CANAL ${PLAYER}&$YURL:$MOATS"
|
2023-01-01 19:06:24 +01:00
|
|
|
lastrun=$MOATS
|
|
|
|
duree=604800000
|
2022-12-11 21:09:53 +01:00
|
|
|
else
|
|
|
|
lastrun=$(echo "$CMD" | rev | cut -d ':' -f 1 | rev) && echo "$CMD"
|
|
|
|
duree=$(expr ${MOATS} - $lastrun)
|
2023-01-01 19:06:24 +01:00
|
|
|
fi
|
2024-03-09 21:06:09 +01:00
|
|
|
# ONE WEEK NEW SCAN
|
|
|
|
if [[ $duree -ge 604800000 || ! -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} ]]; then
|
2024-03-10 00:50:06 +01:00
|
|
|
/usr/local/bin/yt-dlp $BROWSER --print "%(id)s&%(webpage_url)s" "${YURL}" 2>/dev/null >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER}
|
2024-03-09 21:06:09 +01:00
|
|
|
sed -i "s~$lastrun~$MOATS~g" ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command # UPDATE LASTRUN
|
|
|
|
fi
|
2022-10-10 00:39:07 +02:00
|
|
|
|
|
|
|
done # FINISH YURL loop
|
2022-09-15 21:46:37 +02:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
## CREATE SORT UNIQ SHUFFLED ~/.zen/tmp/${IPFSNODEID}/yt-dlp.cache.${PLAYER} (12345 ONLINE)
|
|
|
|
cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} 2>/dev/null | sort | uniq | shuf > ~/.zen/tmp/${IPFSNODEID}/yt-dlp.cache.${PLAYER}
|
2022-11-16 00:29:08 +01:00
|
|
|
|
2022-10-12 00:44:24 +02:00
|
|
|
###################################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
[[ ! -s ~/.zen/tmp/${IPFSNODEID}/yt-dlp.cache.${PLAYER} ]] && echo "AUCUN YOUTUBEID pour CopierYoutube" && exit 0
|
2022-10-10 00:39:07 +02:00
|
|
|
###################################################################
|
2022-12-12 13:39:50 +01:00
|
|
|
boucle=0
|
2023-02-28 02:30:38 +01:00
|
|
|
tot=0
|
2022-10-10 01:46:04 +02:00
|
|
|
###################################################################
|
2022-10-10 16:21:33 +02:00
|
|
|
# PROCESS YOUTUBEID VIDEO DOWNLOAD AND CREATE TIDDLER in TW
|
2022-10-10 00:39:07 +02:00
|
|
|
###################################################################
|
2022-11-27 18:06:24 +01:00
|
|
|
while read LINE;
|
2022-10-06 15:57:00 +02:00
|
|
|
do
|
2023-01-13 00:24:53 +01:00
|
|
|
boucle=$((boucle+1))
|
|
|
|
echo "_____ $LINE _____ $boucle"
|
2023-02-28 02:30:38 +01:00
|
|
|
YID="$(echo "$LINE" | rev | cut -d '=' -f 1 | rev )"
|
2022-11-29 16:39:58 +01:00
|
|
|
|
2024-03-09 21:06:09 +01:00
|
|
|
#~ [[ $boucle -gt 50 ]] && break ## TODO SCAN FOR ABROAD SAME COPY DONE
|
|
|
|
### MAKE BETTER THAN RANDOM !! CONNECT TO THE WARM...
|
|
|
|
|
2022-12-04 17:29:50 +01:00
|
|
|
###################################################################
|
|
|
|
## Search for $YID.TW.json TIDDLER in local & MySwarm cache
|
2023-10-16 21:00:48 +02:00
|
|
|
#~ echo "--- CACHE SEARCH FOR $YID ---"
|
|
|
|
TIDDLER=$(ls -t "${HOME}/.zen/game/players/"*"/G1CopierYoutube/$YID.TW.json" 2>/dev/null | head -n 1)
|
2023-09-11 17:08:22 +02:00
|
|
|
## TODO CORRECT - CACHE CHANGED -
|
2023-04-25 18:11:40 +02:00
|
|
|
[[ ! $TIDDLER ]] && TIDDLER=$(ls -t "${HOME}/.zen/tmp/${IPFSNODEID}/G1CopierYoutube/"*"/$YID.TW.json" 2>/dev/null | head -n 1)
|
|
|
|
[[ ! $TIDDLER ]] && TIDDLER=$(ls -t "${HOME}/.zen/tmp/swarm/"*"/G1CopierYoutube/"*"/$YID.TW.json" 2>/dev/null | head -n 1)
|
2023-10-16 21:00:48 +02:00
|
|
|
#~ [[ $TIDDLER ]] && echo "Tiddler Found in CACHE : $TIDDLER" \
|
|
|
|
#~ || echo "EMPTY."
|
2022-12-04 17:29:50 +01:00
|
|
|
###################################################################
|
|
|
|
|
|
|
|
if [[ ! ${TIDDLER} ]]; then
|
|
|
|
###################################################################
|
|
|
|
# COPY VIDEO AND MAKE TIDDLER
|
|
|
|
###################################################################
|
2022-11-29 16:39:58 +01:00
|
|
|
ZYURL=$(echo "$LINE" | cut -d '&' -f 2-)
|
2022-11-27 18:06:24 +01:00
|
|
|
echo "COPIE : $ZYURL"
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2023-11-07 22:48:57 +01:00
|
|
|
## LIMIT TO 2 MAXIMUM COPY PER DAY PER PLAYER
|
|
|
|
[[ $tot == 3 ]] && echo "MAXIMUM COPY REACHED FOR TODAY" && break
|
|
|
|
## TODO ACCEPT MORE WITH COINS
|
2022-10-10 00:39:07 +02:00
|
|
|
|
2023-04-10 20:50:13 +02:00
|
|
|
TITLE="$(/usr/local/bin/yt-dlp $BROWSER --print "%(title)s" "${ZYURL}" | detox --inline)"
|
2022-11-27 18:06:24 +01:00
|
|
|
[[ ! $TITLE ]] && echo "NO TITLE" && continue
|
2022-09-15 21:46:37 +02:00
|
|
|
|
2022-12-11 15:56:43 +01:00
|
|
|
start=`date +%s`
|
|
|
|
|
2022-12-30 17:07:08 +01:00
|
|
|
echo ".... Downloading $TITLE.mp4"
|
2022-09-09 18:20:18 +02:00
|
|
|
# https://github.com/yt-dlp/yt-dlp#format-selection-examples
|
2022-09-16 11:52:04 +02:00
|
|
|
# SUBS ? --write-subs --write-auto-subs --sub-langs "fr, en, en-orig" --embed-subs
|
2022-10-10 00:39:07 +02:00
|
|
|
# (bv*[height<=720][vcodec~='^((he|a)vc|h26[45])']+ba)
|
2022-09-10 16:39:12 +02:00
|
|
|
# TODO : DELAY COPY OPERATION... Astro can download quicker at 03:00 AM
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "/usr/local/bin/yt-dlp -f \"(bv*[ext=mp4][height<=720]+ba/b[height<=720])\" --no-mtime --embed-thumbnail --add-metadata -o \"${HOME}/.zen/tmp/yt-dlp/$TITLE.%(ext)s\" ${ZYURL}"
|
2022-10-07 22:39:01 +02:00
|
|
|
|
|
|
|
#############################################################################
|
2022-10-08 01:38:33 +02:00
|
|
|
## COPY FROM YOUTUBE (TODO DOUBLE COPY & MKV to MP4 OPTIMISATION)
|
2022-11-27 18:06:24 +01:00
|
|
|
## EXTRA PARAM TO TRY
|
2022-12-15 21:06:01 +01:00
|
|
|
# --write-subs --write-auto-subs --sub-langs "fr, en, en-orig" --embed-subs
|
|
|
|
|
2024-04-20 22:27:36 +02:00
|
|
|
if [[ ${isMP3} == "" ]]; then
|
|
|
|
# copying video
|
|
|
|
/usr/local/bin/yt-dlp -q -f "(bv*[ext=mp4][height<=720]+ba/b[height<=720])" \
|
|
|
|
$BROWSER \
|
|
|
|
--download-archive ${HOME}/.zen/.yt-dlp.list \
|
|
|
|
-S res,ext:mp4:m4a --recode mp4 --no-mtime --embed-thumbnail --add-metadata \
|
|
|
|
-o "${HOME}/.zen/tmp/yt-dlp/$TITLE.%(ext)s" "${ZYURL}"
|
|
|
|
ZFILE="$TITLE.mp4"
|
|
|
|
|
|
|
|
############################################################################
|
|
|
|
### CHECK RESULT CONVERT MKV TO MP4
|
|
|
|
[[ -s "${HOME}/.zen/tmp/yt-dlp/$TITLE.mkv" ]] \
|
|
|
|
&& ffmpeg -loglevel quiet -i "${HOME}/.zen/tmp/yt-dlp/$TITLE.mkv" -c:v libx264 -c:a aac "${HOME}/.zen/tmp/yt-dlp/$TITLE.mp4" \
|
|
|
|
&& rm "${HOME}/.zen/tmp/yt-dlp/$TITLE.mkv"
|
|
|
|
|
|
|
|
if [[ ! -s "${HOME}/.zen/tmp/yt-dlp/${ZFILE}" ]]; then
|
|
|
|
echo "No FILE -- TRYING TO RESTORE CACHE FROM TW -- ${ZFILE}"
|
|
|
|
tiddlywiki --load ${INDEX} \
|
|
|
|
--output ~/.zen/game/players/${PLAYER}/G1CopierYoutube \
|
|
|
|
--render '.' "$YID.TW.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${ZFILE}"
|
|
|
|
|
|
|
|
if [[ -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${YID}.TW.json ]]; then
|
|
|
|
rm "${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/${ZFILE}.json" 2>/dev/null
|
|
|
|
cd ${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/
|
|
|
|
ln -s "./${YID}.TW.json" "${ZFILE}.json"
|
|
|
|
cd -
|
|
|
|
else
|
|
|
|
## REMOVE FILE FROM .yt-dlp.list - RETRY NEXT TIME
|
|
|
|
grep -v -- "$YID" ${HOME}/.zen/.yt-dlp.list > /tmp/.yt-dlp.list
|
|
|
|
mv /tmp/.yt-dlp.list ${HOME}/.zen/.yt-dlp.list
|
|
|
|
fi
|
|
|
|
|
|
|
|
continue
|
2023-05-15 20:57:47 +02:00
|
|
|
fi
|
2023-09-11 17:08:22 +02:00
|
|
|
|
2024-04-20 22:27:36 +02:00
|
|
|
else
|
|
|
|
# copying mp3
|
|
|
|
echo "TODO..."
|
|
|
|
/usr/local/bin/yt-dlp -q -x --no-mtime --audio-format mp3 --embed-thumbnail --add-metadata \
|
|
|
|
$BROWSER \
|
|
|
|
--download-archive ${HOME}/.zen/.yt-dlp.list \
|
|
|
|
-o "$HOME/Astroport/${PLAYER}/mp3/%(autonumber)s_%(title)s.%(ext)s" "${ZYURL}"
|
|
|
|
|
|
|
|
ZFILE="$TITLE.mp3"
|
2023-01-15 12:53:22 +01:00
|
|
|
fi
|
2023-09-11 17:08:22 +02:00
|
|
|
|
2022-09-15 14:23:29 +02:00
|
|
|
echo
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2022-10-10 00:39:07 +02:00
|
|
|
####################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "FOUND : ~/.zen/tmp/yt-dlp/${ZFILE}"
|
|
|
|
FILE_BSIZE=$(du -b "${HOME}/.zen/tmp/yt-dlp/${ZFILE}" | awk '{print $1}')
|
2023-01-15 12:43:32 +01:00
|
|
|
[[ ! $FILE_BSIZE ]] && echo "SIZE ERROR" && continue
|
2022-10-10 00:39:07 +02:00
|
|
|
FILE_SIZE=$(echo "${FILE_BSIZE}" | awk '{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }')
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "$boucle - ${ZFILE} - FILE SIZE = $FILE_SIZE ($FILE_BSIZE octets)"
|
2024-04-20 22:27:36 +02:00
|
|
|
echo
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2023-02-25 18:30:03 +01:00
|
|
|
### CREATE GIF ANIM : make_video_gifanim_ipfs.sh
|
2024-04-20 22:27:36 +02:00
|
|
|
[[ ${isMP3} == "" ]] \
|
|
|
|
&& $(${MY_PATH}/../tools/make_video_gifanim_ipfs.sh "${HOME}/.zen/tmp/yt-dlp" "${ZFILE}" | tail -n 1) ## export ANIMH
|
|
|
|
|
2023-03-16 21:52:42 +01:00
|
|
|
echo "HOP=$HOP
|
|
|
|
ANIMH=$ANIMH
|
|
|
|
PROBETIME=$PROBETIME
|
|
|
|
DURATION=$DURATION
|
|
|
|
DUREE=$DUREE
|
|
|
|
RES=$RES
|
|
|
|
MIME=$MIME
|
|
|
|
VTRATIO=$VTRATIO
|
|
|
|
file=$file"
|
2022-11-29 16:39:58 +01:00
|
|
|
|
2023-03-16 21:52:42 +01:00
|
|
|
## Create gifanime ## TODO Search for similarities BEFORE ADD
|
2022-08-25 17:21:39 +02:00
|
|
|
echo "Adding to IPFS"
|
2023-04-25 18:11:40 +02:00
|
|
|
ILINK=$(ipfs add -q "${HOME}/.zen/tmp/yt-dlp/${ZFILE}" | tail -n 1)
|
|
|
|
echo "/ipfs/$ILINK === ${ZFILE}"
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2023-02-27 15:10:21 +01:00
|
|
|
[[ $ILINK == "" ]] && echo ">>>>> BIG PROBLEM PAPA. NO IPFS " && continue
|
2023-01-17 23:46:44 +01:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
MIME=$(file --mime-type -b "${HOME}/.zen/tmp/yt-dlp/${ZFILE}")
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2022-10-07 17:07:51 +02:00
|
|
|
## ADD TAGS
|
2023-04-10 20:50:13 +02:00
|
|
|
SEC=$(/usr/local/bin/yt-dlp $BROWSER --print "%(duration)s" "${ZYURL}")
|
|
|
|
CHANNEL=$(/usr/local/bin/yt-dlp $BROWSER --print "%(channel)s" "${ZYURL}" | sed -r 's/\<./\U&/g' | sed 's/ //g') # CapitalGluedWords
|
|
|
|
PLAYLIST=$(/usr/local/bin/yt-dlp $BROWSER --print "%(playlist)s" "${ZYURL}" | sed -r 's/\<./\U&/g' | sed 's/ //g')
|
2022-10-10 01:39:22 +02:00
|
|
|
EXTRATAG="$CHANNEL $PLAYLIST"
|
2024-04-20 22:27:36 +02:00
|
|
|
|
|
|
|
if [[ ${isMP3} == "" ]]; then
|
2022-10-07 17:07:51 +02:00
|
|
|
## PREPARE VIDEO HTML5 CODE
|
2024-04-20 22:27:36 +02:00
|
|
|
TEXT="<video controls width=100% poster='/ipfs/"${ANIMH}"'>
|
|
|
|
<source src='/ipfs/"${ILINK}"' type='"${MIME}"'>
|
2024-04-20 22:30:22 +02:00
|
|
|
Your browser does not support the video element.
|
2024-04-20 22:27:36 +02:00
|
|
|
</video>
|
|
|
|
<br>
|
|
|
|
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})
|
|
|
|
<br>
|
|
|
|
<h1><a href='"${ZYURL}"'>"${TITLE}"</a></h1>"
|
2024-04-20 22:43:18 +02:00
|
|
|
FOLDER="/MP4"
|
2024-04-20 22:27:36 +02:00
|
|
|
else
|
|
|
|
TEXT="<audio controls>
|
|
|
|
<source src='/ipfs/"${ILINK}"' type='"${MIME}"'>
|
|
|
|
Your browser does not support the audio element.
|
2024-04-20 22:30:22 +02:00
|
|
|
</audio>
|
|
|
|
<br>
|
|
|
|
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})
|
|
|
|
<br>
|
|
|
|
<h1><a href='"${ZYURL}"'>"${TITLE}"</a></h1>"
|
2024-04-20 22:43:18 +02:00
|
|
|
FOLDER="/MP3"
|
2024-04-20 22:27:36 +02:00
|
|
|
fi
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2022-12-11 15:56:43 +01:00
|
|
|
end=`date +%s`
|
|
|
|
dur=`expr $end - $start`
|
|
|
|
|
2023-01-07 20:44:57 +01:00
|
|
|
echo "Creating Youtube \"${YID}\" tiddler : G1CopierYoutube !"
|
2023-01-20 20:14:59 +01:00
|
|
|
|
2023-09-10 15:06:16 +02:00
|
|
|
CTITLE=$(echo ${ZFILE} | sed 's~_~ ~g' | sed 's~\.~ ~g')
|
|
|
|
|
2023-01-20 20:14:59 +01:00
|
|
|
## WAN ADD <<hide tiddler-controls>> TO text jq 'map(.text += "<<hide tiddler-controls>>")'
|
|
|
|
[[ ! isLAN ]] && TEXT="$TEXT <<hide tiddler-controls>>"
|
2022-09-15 13:41:53 +02:00
|
|
|
echo $TEXT
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2023-09-11 23:55:07 +02:00
|
|
|
TIDDLER="${HOME}/.zen/tmp/${IPFSNODEID}/G1CopierYoutube/${PLAYER}/${YID}.TW.json"
|
|
|
|
|
|
|
|
echo '[
|
2022-08-25 17:21:39 +02:00
|
|
|
{
|
2022-11-13 04:07:47 +01:00
|
|
|
"created": "'${MOATS}'",
|
2022-11-29 16:39:58 +01:00
|
|
|
"resolution": "'${RES}'",
|
|
|
|
"duree": "'${DUREE}'",
|
|
|
|
"duration": "'${DURATION}'",
|
|
|
|
"giftime": "'${PROBETIME}'",
|
|
|
|
"gifanime": "'/ipfs/${ANIMH}'",
|
2022-11-16 07:39:45 +01:00
|
|
|
"modified": "'${MOATS}'",
|
2024-04-20 22:43:18 +02:00
|
|
|
"title": "'${FOLDER}/${ZFILE}'",
|
2022-08-25 19:33:10 +02:00
|
|
|
"type": "'text/vnd.tiddlywiki'",
|
2022-12-19 19:30:41 +01:00
|
|
|
"vtratio": "'${VTRATIO}'",
|
2022-08-25 19:33:10 +02:00
|
|
|
"text": "'$TEXT'",
|
2022-12-27 12:56:35 +01:00
|
|
|
"g1pub": "'${G1PUB}'",
|
2022-11-29 16:39:58 +01:00
|
|
|
"mime": "'${MIME}'",
|
2022-10-10 00:39:07 +02:00
|
|
|
"size": "'${FILE_BSIZE}'",
|
2022-12-19 22:10:47 +01:00
|
|
|
"filesize": "'${FILE_SIZE}'",
|
2022-10-10 00:39:07 +02:00
|
|
|
"sec": "'${SEC}'",
|
2022-12-11 15:56:43 +01:00
|
|
|
"dur": "'${dur}'",
|
2022-10-28 02:18:22 +02:00
|
|
|
"ipfs": "'/ipfs/${ILINK}'",
|
2022-10-07 22:39:01 +02:00
|
|
|
"youtubeid": "'${YID}'",
|
2023-01-10 18:02:43 +01:00
|
|
|
"zurl": "'${ZYURL}'",
|
2023-07-14 15:45:07 +02:00
|
|
|
"issuer": "'${PLAYER}'",
|
2023-09-10 15:06:16 +02:00
|
|
|
"tags": "'ipfs G1CopierYoutube ${PLAYER} ${EXTRATAG} ${MIME} ${CTITLE}'"
|
2022-08-25 17:21:39 +02:00
|
|
|
}
|
|
|
|
]
|
2023-09-11 23:55:07 +02:00
|
|
|
' > ${TIDDLER}
|
2022-10-07 22:39:01 +02:00
|
|
|
|
2023-02-28 02:30:38 +01:00
|
|
|
tot=$((tot+1))
|
2023-01-20 20:14:59 +01:00
|
|
|
|
2022-12-04 17:29:50 +01:00
|
|
|
else
|
2022-12-30 17:07:08 +01:00
|
|
|
###################################################################
|
2023-10-16 21:00:48 +02:00
|
|
|
#~ echo "${TIDDLER} FOUND"
|
2022-12-30 17:07:08 +01:00
|
|
|
###################################################################
|
|
|
|
## TODO : ADD EMAIL TAG ( TIMESTAMP & ADD SIGNATURE over existing ones)
|
2023-01-05 16:28:10 +01:00
|
|
|
continue
|
2022-12-04 17:29:50 +01:00
|
|
|
fi
|
|
|
|
|
2023-09-11 23:55:07 +02:00
|
|
|
cp -f "${TIDDLER}" "${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/"
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2022-10-07 22:39:01 +02:00
|
|
|
#################################################################
|
2023-04-25 18:11:40 +02:00
|
|
|
### ADDING $YID.TW.json to ASTRONAUTENS INDEX.html
|
2022-10-07 22:39:01 +02:00
|
|
|
#################################################################
|
2022-08-25 19:33:10 +02:00
|
|
|
echo "=========================="
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "Adding $YID tiddler to TW /ipns/$ASTRONAUTENS "
|
2022-08-25 17:21:39 +02:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
rm -f ~/.zen/tmp/${IPFSNODEID}/newindex.html
|
2022-08-25 19:33:10 +02:00
|
|
|
|
2023-09-11 23:55:07 +02:00
|
|
|
echo ">>> Importing ${TIDDLER}"
|
2022-09-15 13:41:53 +02:00
|
|
|
|
2022-12-04 17:29:50 +01:00
|
|
|
tiddlywiki --load ${INDEX} \
|
2023-09-11 23:55:07 +02:00
|
|
|
--import "${TIDDLER}" "application/json" \
|
2023-04-25 18:11:40 +02:00
|
|
|
--output ~/.zen/tmp/${IPFSNODEID} --render "$:/core/save/all" "newindex.html" "text/plain"
|
2022-11-27 18:06:24 +01:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
if [[ -s ~/.zen/tmp/${IPFSNODEID}/newindex.html ]]; then
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2022-12-26 22:05:32 +01:00
|
|
|
## COPY JSON TIDDLER TO PLAYER
|
2023-10-20 01:32:28 +02:00
|
|
|
cd ${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/
|
|
|
|
ln -s "./$YID.TW.json" "${ZFILE}.json"
|
|
|
|
cd -
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2023-09-11 23:55:07 +02:00
|
|
|
[[ $(diff ~/.zen/tmp/${IPFSNODEID}/newindex.html ${INDEX} ) ]] \
|
|
|
|
&& mv ~/.zen/tmp/${IPFSNODEID}/newindex.html ${INDEX} \
|
|
|
|
&& echo "===> Mise à jour ${INDEX}"
|
2022-12-30 17:07:08 +01:00
|
|
|
|
2022-08-25 19:33:10 +02:00
|
|
|
else
|
2023-04-25 18:11:40 +02:00
|
|
|
echo "Problem with tiddlywiki command. Missing ~/.zen/tmp/${IPFSNODEID}/newindex.html"
|
2022-08-25 19:33:10 +02:00
|
|
|
echo "XXXXXXXXXXXXXXXXXXXXXXX"
|
|
|
|
fi
|
2022-10-06 15:57:00 +02:00
|
|
|
|
2023-04-25 18:11:40 +02:00
|
|
|
done < ~/.zen/tmp/${IPFSNODEID}/yt-dlp.cache.${PLAYER} # FINISH YID loop 1
|
2022-12-10 19:25:36 +01:00
|
|
|
|
2023-10-08 02:27:07 +02:00
|
|
|
## COPY PLAYER CACHE TO STATION SWARM CACHE
|
2023-10-09 22:15:29 +02:00
|
|
|
cp -r ${HOME}/.zen/game/players/${PLAYER}/G1CopierYoutube/* \
|
2023-10-08 02:27:07 +02:00
|
|
|
~/.zen/tmp/${IPFSNODEID}/G1CopierYoutube/${PLAYER}/
|
2022-12-10 19:25:36 +01:00
|
|
|
|
2022-10-12 00:44:24 +02:00
|
|
|
exit 0
|