diff --git a/crowdbunker.sh b/crowdbunker.sh
index b6574e3..d95886c 100755
--- a/crowdbunker.sh
+++ b/crowdbunker.sh
@@ -36,47 +36,48 @@ cat ~/.zen/bunkerbox/crowd.json | jq -r '.posts | .[] | .video.id' > /tmp/vuid.l
# Reverse list to start with older videos
for VUID in $(tac /tmp/vuid.list); do
[[ "$VUID" == "null" ]] && echo "MESSAGE... Bypassing..." && echo && continue
+ echo "====================================================="
echo "Bunker BOX : Adding $VUID"
mkdir -p ~/.zen/bunkerbox/$VUID/media
URL="https://api.crowdbunker.com/post/$VUID/details"
# echo "WISHING TO EXPLORE $URL ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue
- curl -s $URL -H "Accept: application/json" -o ~/.zen/bunkerbox/$VUID/$VUID.json
+ curl -s $URL -H "Accept: application/json" -o ~/.zen/bunkerbox/$VUID/media/$VUID.json
# STREAMING LIVE ?
- echo ">>> Extracting video caracteristics from ~/.zen/bunkerbox/$VUID/$VUID.json"
- ISLIVE=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.isLiveType)&& [[ "$ISLIVE" == "true" ]] && echo "LIVE... "
- LIVE=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.isLiveActive) && [[ "$LIVE" == "true" ]] && echo "STREAMING... Bypassing..." && echo && continue
- DURATION=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.duration) && [[ $DURATION == 0 ]] && echo "NOT STARTED YET" && echo && continue
- TITLE=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.title | sed "s/'/ /g" | sed 's/"/ /g') # Remove quote
- CHANNEL=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .channel.name)
- ORGUID=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .organization.uid)
- ORGNAME=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .organization.name)
- ORGBANNER=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .organization.banner.url)
+ echo ">>> Extracting video caracteristics from ~/.zen/bunkerbox/$VUID/media/$VUID.json"
+ ISLIVE=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.isLiveType)&& [[ "$ISLIVE" == "true" ]] && echo "LIVE... "
+ LIVE=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.isLiveActive) && [[ "$LIVE" == "true" ]] && echo "STREAMING... Bypassing..." && echo && continue
+ DURATION=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.duration) && [[ $DURATION == 0 ]] && echo "NOT STARTED YET" && echo && continue
+ TITLE=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.title | sed "s/'/ /g" | sed 's/"/ /g') # Remove quote
+ CHANNEL=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .channel.name)
+ ORGUID=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .organization.uid)
+ ORGNAME=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .organization.name)
+ ORGBANNER=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .organization.banner.url)
- HLS=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.hlsManifest.url)
+ HLS=$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.hlsManifest.url)
MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev)
echo "$TITLE ($DURATION s)"
## NO choice made, so ask to continue each loop
[[ ! $(cat ~/.zen/bunkerbox/choice 2>/dev/null) ]] && echo "READY TO PROCESS ? ENTER. Any character sent means next." && read TEST && [[ "$TEST" != "" ]] && echo && continue ## NO CHOICE MADE
- start=`date +%s`
echo "$HLS"
## Download HLS source m3u8 (contains video & audio)
curl -s $HLS -o ~/.zen/bunkerbox/$VUID/$VUID.m3u8
[[ ! $(cat ~/.zen/bunkerbox/choice 2>/dev/null) ]] && cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 # DEBUG
echo ">>>>>>>>>>>>>>>> Downloading VIDEO"
- # Choose 360p or 480p or 240p
+ # Choose 360p or 480p or 720p or 240p
VSIZE=360 && VIDEOHEAD=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep -B1 ${VSIZE}p | head -n 1) && VIDEOSRC=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep ${VSIZE}p | tail -n 1 | cut -f 1 -d '.')
[[ "$VIDEOSRC" == "" ]] && VSIZE=480 && VIDEOHEAD=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep -B1 ${VSIZE}p | head -n 1) && VIDEOSRC=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep ${VSIZE}p | tail -n 1 | cut -f 1 -d '.')
+ [[ "$VIDEOSRC" == "" ]] && VSIZE=720 && VIDEOHEAD=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep -B1 ${VSIZE}p | head -n 1) && VIDEOSRC=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep ${VSIZE}p | tail -n 1 | cut -f 1 -d '.')
[[ "$VIDEOSRC" == "" ]] && VSIZE=240 &&VIDEOHEAD=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep -B1 ${VSIZE}p | head -n 1) && VIDEOSRC=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep ${VSIZE}p | tail -n 1 | cut -f 1 -d '.')
## NO VIDEO ?
[[ "$VIDEOSRC" == "" ]] && echo "NO COMPATIBLE RESOLUTION VIDEO FOUND." && cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 && continue
# THUMBNAIL
- VTHUMB="$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r --arg VSIZE "$VSIZE" '.video.thumbnails[] | select(.height == $VSIZE) | .url')"
+ VTHUMB="$(cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r --arg VSIZE "$VSIZE" '.video.thumbnails[] | select(.height == $VSIZE) | .url')"
echo ">>>>>>>>>>>>>>>> Downloading $VSIZE Thumbnail"
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$VUID.jpg ]] && curl -s $VTHUMB -o ~/.zen/bunkerbox/$VUID/media/$VUID.jpg
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$VUID.jpg ]] && cp ${MY_PATH}/images/astroport.jpg ~/.zen/bunkerbox/$VUID/media/$VUID.jpg # CORRECT MISSING THUMB
@@ -110,7 +111,7 @@ ls ~/.zen/bunkerbox/$VUID/media/ # SHOW ALL COLLECTED MEDIA
##########################################################################
##########################################################################
-
+start=`date +%s`
echo "##########################################################################"
echo ">>>>>>>>>>>>>>>> ADDING index.html"
# COPY index, style, js AND data
@@ -119,31 +120,30 @@ echo "##########################################################################
cp ${MY_PATH}/templates/videojs.html ~/.zen/bunkerbox/$VUID/media/index.html
cp ${MY_PATH}/images/astroport.jpg ~/.zen/bunkerbox/$VUID/media/
- ## NO HISTORY? COPY from TEMPLATE (PROGRAM START)
- [[ ! -f ~/.zen/bunkerbox/history.json ]] && cp ${MY_PATH}/templates/data/history.json ~/.zen/bunkerbox/history.json
+ ## NO OR EMPTY HISTORY? COPY from TEMPLATE (PROGRAM START)
+ [[ ! -f ~/.zen/bunkerbox/history.json || $(cat ~/.zen/bunkerbox/history.json 2>/dev/null) == "" ]] && cp ${MY_PATH}/templates/data/history.json ~/.zen/bunkerbox/history.json
# qo-op get latest history.json
- if [[ "$(cat ~/.zen/bunkerbox/choice 2>/dev/null)"=="qo-op" ]]; then
+ if [[ "$(cat ~/.zen/bunkerbox/choice 2>/dev/null)" == "qo-op" ]]; then
IPNSL="/ipns/$(cat ~/.zen/bunkerbox/qo-op)"
ipfs get -o ~/.zen/bunkerbox/history.qo-op.json $IPNSL/history.json # Get actual IPNS qo-op history.json
[[ $(cat ~/.zen/bunkerbox/history.qo-op.json | jq .Videos[].link | grep $VUID) ]] && echo "VIDEO DEJA DANS IPFS... CONTINUE" && echo && cp ~/.zen/bunkerbox/history.qo-op.json ~/.zen/bunkerbox/history.json && continue
# JSON FUSION
- jq -s '.[0] * .[1]' ~/.zen/bunkerbox/history.json ~/.zen/bunkerbox/history.qo-op.json | jq -M '.Videos |= unique_by(.link)' > ~/.zen/bunkerbox/history.fusion.json
+ jq -s '.[0] * .[1]' ~/.zen/bunkerbox/history.qo-op.json ~/.zen/bunkerbox/history.json | jq -M '.Videos |= unique_by(.link)' > ~/.zen/bunkerbox/history.fusion.json
mv ~/.zen/bunkerbox/history.fusion.json ~/.zen/bunkerbox/history.json ## REPLACE LOCAL HISTORY CACHE
else
IPNSL="./"
fi
# Add current/latest reversed history to media
- echo '{
- "Videos":' > ~/.zen/bunkerbox/$VUID/media/history.json
+ echo '{ "Videos":' > ~/.zen/bunkerbox/$VUID/media/history.json
cat ~/.zen/bunkerbox/history.json | jq '.[] | reverse' >> ~/.zen/bunkerbox/$VUID/media/history.json
echo '}' >> ~/.zen/bunkerbox/$VUID/media/history.json
- # Using relative links
+ # COPY videojs.html TEMPLATE & Updating links
sed "s/_IPFSROOT_/./g" ${MY_PATH}/templates/videojs.html > ~/.zen/bunkerbox/$VUID/media/index.html
sed -i "s/_VUID_/$VUID/g" ~/.zen/bunkerbox/$VUID/media/index.html
-# sed -i s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g ~/.zen/bunkerbox/$VUID/media/index.html # Different Copy Makes Different Chains !
+# sed -i s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g ~/.zen/bunkerbox/$VUID/media/index.html # !! Different Copy Makes Different Chains !
sed -i "s~_TITLE_~$TITLE~g" ~/.zen/bunkerbox/$VUID/media/index.html
sed -i "s~_CHANNEL_~$CHANNEL~g" ~/.zen/bunkerbox/$VUID/media/index.html
sed -i "s~_IPNSL_~$IPNSL~g" ~/.zen/bunkerbox/$VUID/media/index.html #MAJ IPNS link
@@ -155,29 +155,27 @@ echo "##########################################################################
VMAIN="/ipfs/$IPFSROOT/$VUID.m3u8"
# UPDATING original JSON - TODO inform crowdbunker that IPFS copy is available.
- cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > ~/.zen/bunkerbox/$VUID/media/$VUID.json
- echo "M3U8 : $IPFSNGW$VMAIN"
+ cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > ~/.zen/bunkerbox/$VUID/$VUID.json
+ echo "TODO: CALL BACK SOURCE ... New HLS = $IPFSNGW$VMAIN"
## UPDATE GLOCAL HISTORY ?
IsThere=$(cat ~/.zen/bunkerbox/history.json | jq .Videos[].link | grep $VUID)
if [[ ! $IsThere ]]; then
echo "Add $INDEX to ~/.zen/bunkerbox/$VUID/media/history.json"
## history.json Videos.link is the HTML code displayed in index.html with pagination.js (related to)
- cat ~/.zen/bunkerbox/history.json | jq '.Videos += [{"link": "
'"'_TITLE_'"'"}]' > ~/.zen/bunkerbox/$VUID/media/history.json
- echo $INDEX
+ cat ~/.zen/bunkerbox/history.json | jq '.Videos += [{"link": "
'"'_TITLE_'"'"}]' > ~/.zen/bunkerbox/$VUID/media/history.json
+# sed -i "s~_TSVUID_~$TS$VUID~g" ~/.zen/bunkerbox/$VUID/media/history.json # Makes different chain for each creator !!
sed -i "s~_INDEX_~$INDEX~g" ~/.zen/bunkerbox/$VUID/media/history.json
- echo $VUID
sed -i "s~_VUID_~$VUID~g" ~/.zen/bunkerbox/$VUID/media/history.json
- echo $TITLE
sed -i "s~_TITLE_~$TITLE~g" ~/.zen/bunkerbox/$VUID/media/history.json
+
# COULD BE DONE LIKE THAT
# cat ~/.zen/bunkerbox/$VUID/media/history.json | jq --arg INDEX "$INDEX" --arg TITLE "$TITLE" '.Videos += [{"link": "'''$TITLE'''"}]' > ~/.zen/bunkerbox/history.json
echo "MISE A JOUR ~/.zen/bunkerbox/history.json"
[[ "$(cat ~/.zen/bunkerbox/$VUID/media/history.json)" == "" ]] && echo "FATAL ERROR" && exit 1
- # Upgrade local history.json with reverse current one
+ # Upgrade local history.json with reverse new one
if [[ -f ~/.zen/bunkerbox/$VUID/media/history.json ]]; then
- echo '{
- "Videos":' > ~/.zen/bunkerbox/history.json
+ echo '{ "Videos":' > ~/.zen/bunkerbox/history.json
cat ~/.zen/bunkerbox/$VUID/media/history.json | jq '.[] | reverse' >> ~/.zen/bunkerbox/history.json
echo '}' >> ~/.zen/bunkerbox/history.json
fi
@@ -277,14 +275,10 @@ echo "##########################################################################
"debug")
echo "debug"
> ~/.zen/bunkerbox/choice
- break
+ continue
;;
esac
-
-##########################################################################
-# cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.hlsManifest.url
-
- end=`date +%s`; echo Duration `expr $end - $start` seconds.
+ end=`date +%s`; echo ___Duration `expr $end - $start` seconds___
done
diff --git a/templates/videojs.html b/templates/videojs.html
index bdc9c60..9b9c606 100644
--- a/templates/videojs.html
+++ b/templates/videojs.html
@@ -45,9 +45,11 @@