cleaner faster

This commit is contained in:
fred 2022-04-02 02:43:24 +02:00
parent c25b815804
commit e113e08566
3 changed files with 59 additions and 97 deletions

View File

@ -1,32 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>_PSEUDO_ VIDEO BUNKER - Astroport powered</title>
<link rel="stylesheet" href="_IPFSROOT_/styles/decoration.css" type="text/css" />
<link rel="stylesheet" href="_IPFSROOT_/styles/layout.css" type="text/css" />
<link rel="icon" type="image/png" href="_IPFSROOT_/styles/logo.png" />
</head>
<body>
<header>
<h6>
<a href="https://qo-op.com">Bunker "<span>BOX</span>"</a> _PSEUDO_
</h6>
</header>
<main>
<article>
<video autoplay="autoplay" controls>
<source src="_IPFSID_/output.mp4" type="video/mp4">
<a href="_IPFSID_/output.mp4">Ma Video</a>
</video>
<h1 class="video-title">
Enregistrement du _DATE_
</h1>
</article>
</main>
</body>
</html>

View File

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8">
<title>_PSEUDO_ [IPFS Bunker BOX]</title> <title>_PSEUDO_ [IPFS Bunker BOX]</title>
<link rel="stylesheet" href="_IPFSROOT_/styles/video-js.css" type="text/css" /> <link rel="stylesheet" href="_IPFSROOT_/styles/video-js.css" type="text/css" />
<link rel="stylesheet" href="_IPFSROOT_/styles/forest.css" type="text/css" /> <link rel="stylesheet" href="_IPFSROOT_/styles/forest.css" type="text/css" />
@ -11,23 +12,23 @@
<body> <body>
<header> <header>
<h6> <h6>
<a href="https://astroport.com">Bunker "<span>BOX</span>"</a> _PSEUDO_ <a href="https://astroport.com"> "<span>Bunker BOX</span>"</a> powered by <span>"</span>Astroport<span>"</span>
</h6> </h6>
</header> </header>
<main> <main>
<article> <article>
<video <video
id="my-video" id="_HLS_"
class="video-js vjs-theme-forest" class="video-js vjs-theme-forest"
controls controls
preload="auto" preload="auto"
width="640" width="640"
height="360" height="360"
poster="MY_VIDEO_POSTER.jpg" poster="_IPFSROOT_/styles/logo.png"
data-setup="{}" data-setup="{}"
> >
<source src="_HLS_" type="application/x-mpegURL" /> <source src="_IPFSROOT_/_HLS_" type="application/x-mpegURL" />
<p class="vjs-no-js"> <p class="vjs-no-js">
Activer JavaScript SVP Activer JavaScript SVP
</p> </p>
@ -44,7 +45,7 @@
<script src="_IPFSROOT_/js/videojs-contrib-hls.min.js"></script> <script src="_IPFSROOT_/js/videojs-contrib-hls.min.js"></script>
<script> <script>
var player = videojs('my-video'); var player = videojs('_HLS_');
player.play(); player.play();
</script> </script>

View File

@ -15,7 +15,7 @@ isLAN=$(hostname -I | awk '{print $1}' | head -n 1 | cut -f3 -d '/' | grep -E "(
# Fred MadeInZion, [20/03/2022 23:03] # Fred MadeInZion, [20/03/2022 23:03]
# Script qui capture et transfert dans IPFS les vidéos de https://crowdbunker.com/ # Script qui capture et transfert dans IPFS les vidéos de https://crowdbunker.com/
IPFSGWESC="https:\/\/tube.copylaradio.com" && IPFSNGW="https://tube.copylaradio.com" IPFSGWESC="https:\/\/tube.copylaradio.com" && IPFSNGW="https://tube.copylaradio.com"
IPFSGWESC="http:\/\/localhost:8080" && IPFSNGW="http://localhost:8080" IPFSGWESC="http:\/\/127.0.0.1:8080" && IPFSNGW="http://127.0.0.1:8080"
[[ ! $isLAN ]] && IPFSGWESC="https:\/\/$(hostname)" && IPFSNGW="https://$(hostname)" [[ ! $isLAN ]] && IPFSGWESC="https:\/\/$(hostname)" && IPFSNGW="https://$(hostname)"
@ -27,73 +27,70 @@ curl -s $VWALLURL -H "Accept: application/json" > /tmp/crowd.json
## LOOP THROUGH ## LOOP THROUGH
for VUID in $(cat /tmp/crowd.json | jq -r '.posts | .[] | .video.id'); do for VUID in $(cat /tmp/crowd.json | jq -r '.posts | .[] | .video.id'); do
start=`date +%s`
[[ "$VUID" == "null" ]] && echo "MESSAGE... Bypassing..." && echo && continue [[ "$VUID" == "null" ]] && echo "MESSAGE... Bypassing..." && echo && continue
echo "Bunker BOX : Adding $VUID" echo "Bunker BOX : Adding $VUID"
mkdir -p /tmp/$VUID/media mkdir -p /tmp/$VUID/media
URL="https://api.crowdbunker.com/post/$VUID/details" URL="https://api.crowdbunker.com/post/$VUID/details"
echo "WISHING TO EXPLORE $URL ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue # echo "WISHING TO EXPLORE $URL ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue
curl -s $URL -H "Accept: application/json" -o /tmp/$VUID/$VUID.json curl -s $URL -H "Accept: application/json" -o /tmp/$VUID/$VUID.json
# STREAMING LIVE ? # STREAMING LIVE ?
echo ">>> Extracting video caracteristics from /tmp/$VUID/$VUID.json"
ISLIVE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.isLiveType)&& [[ "$ISLIVE" == "true" ]] && echo "LIVE... " ISLIVE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.isLiveType)&& [[ "$ISLIVE" == "true" ]] && echo "LIVE... "
LIVE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.isLiveActive) && [[ "$LIVE" == "true" ]] && echo "STREAMING... Bypassing..." && echo && continue LIVE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.isLiveActive) && [[ "$LIVE" == "true" ]] && echo "STREAMING... Bypassing..." && echo && continue
DURATION=$(cat /tmp/$VUID/$VUID.json | jq -r .video.duration) && [[ $DURATION == 0 ]] && echo "NOT STARTED YET" && echo && continue DURATION=$(cat /tmp/$VUID/$VUID.json | jq -r .video.duration) && [[ $DURATION == 0 ]] && echo "NOT STARTED YET" && echo && continue
TITLE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.title) && echo "$TITLE" TITLE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.title)
echo "Extracting video.hlsManifest.url from /tmp/$VUID/$VUID.json"
HLS=$(cat /tmp/$VUID/$VUID.json | jq -r .video.hlsManifest.url) HLS=$(cat /tmp/$VUID/$VUID.json | jq -r .video.hlsManifest.url)
MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev) MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev)
echo "HLS=$HLS" echo "$TITLE ($DURATION s)"
echo "$HLS"
echo "READY TO PROCESS ?... $DURATION s"; read TEST; [[ "$TEST" != "" ]] && echo && continue echo "READY TO PROCESS ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue
curl -s $HLS -o /tmp/$VUID/$VUID.m3u8 curl -s $HLS -o /tmp/$VUID/$VUID.m3u8
cat /tmp/$VUID/$VUID.m3u8 cat /tmp/$VUID/$VUID.m3u8
echo ">>>>>>>>>>>>>>>> Downloading VIDEO" echo ">>>>>>>>>>>>>>>> Downloading VIDEO"
start=`date +%s` # Choose 360p or 480p or 240p
VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 360p | head -n 1) VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 360p | head -n 1)
VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 360p | tail -n 1 | cut -f 1 -d '.') VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 360p | tail -n 1 | cut -f 1 -d '.')
[[ "$VIDEOSRC" == "" ]] && VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 480p | head -n 1) && VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 480p | tail -n 1 | cut -f 1 -d '.') #New try with 480p [[ "$VIDEOSRC" == "" ]] && VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 480p | head -n 1) && VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 480p | tail -n 1 | cut -f 1 -d '.') #New try with 480p
[[ "$VIDEOSRC" == "" ]] && VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 240p | head -n 1) && VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 240p | tail -n 1 | cut -f 1 -d '.') #New try with 240p [[ "$VIDEOSRC" == "" ]] && VIDEOHEAD=$(cat /tmp/$VUID/$VUID.m3u8 | grep -B1 240p | head -n 1) && VIDEOSRC=$(cat /tmp/$VUID/$VUID.m3u8 | grep 240p | tail -n 1 | cut -f 1 -d '.') #New try with 240p
echo "VIDEOSRC=$MEDIASOURCE/$VIDEOSRC" echo "VIDEOSRC=$MEDIASOURCE/$VIDEOSRC"
[[ ! -f /tmp/$VUID/media/$VIDEOSRC.m3u8 ]] && curl -s $MEDIASOURCE/$VIDEOSRC.m3u8 -o /tmp/$VUID/$VIDEOSRC.m3u8 # Downloading Video m3u8 and Video
[[ ! -f /tmp/$VUID/media/$VIDEOSRC.m3u8 ]] && curl -s $MEDIASOURCE/$VIDEOSRC.m3u8 -o /tmp/$VUID/media/$VIDEOSRC.m3u8
[[ ! -f /tmp/$VUID/media/$VIDEOSRC ]] && curl $MEDIASOURCE/$VIDEOSRC -o /tmp/$VUID/media/$VIDEOSRC [[ ! -f /tmp/$VUID/media/$VIDEOSRC ]] && curl $MEDIASOURCE/$VIDEOSRC -o /tmp/$VUID/media/$VIDEOSRC
IPFSVID=$(ipfs add -wrHq /tmp/$VUID/media/$VIDEOSRC | tail -n 1) ## ADD VIDEO TO IPFS # IPFSVID=$(ipfs add -wrHq /tmp/$VUID/media/$VIDEOSRC | tail -n 1) ## ADD VIDEO TO IPFS
# echo "VIDEO = $IPFSNGW/ipfs/$IPFSVID/$VIDEOSRC"
echo "VIDEO = $IPFSNGW/ipfs/$IPFSVID/$VIDEOSRC"
end=`date +%s`; echo `expr $end - $start` seconds.
echo ">>>>>>>>>>>>>>>> Downloading AUDIO" echo ">>>>>>>>>>>>>>>> Downloading AUDIO"
start=`date +%s`
AUDIOLINE=$(cat /tmp/$VUID/$VUID.m3u8 | grep '=AUDIO') AUDIOLINE=$(cat /tmp/$VUID/$VUID.m3u8 | grep '=AUDIO')
AUDIOFILE=$(echo $AUDIOLINE | rev | cut -d '.' -f 2- | cut -d '"' -f 1 | rev) AUDIOFILE=$(echo $AUDIOLINE | rev | cut -d '.' -f 2- | cut -d '"' -f 1 | rev)
echo "AUDIO=$MEDIASOURCE/$AUDIOFILE" echo "AUDIO=$MEDIASOURCE/$AUDIOFILE"
[[ ! -f /tmp/$VUID/media/$AUDIOFILE.m3u8 ]] && curl -s $MEDIASOURCE/$AUDIOFILE.m3u8 -o /tmp/$VUID/$AUDIOFILE.m3u8 # Downloading Audio m3u8 and Audio
[[ ! -f /tmp/$VUID/media/$AUDIOFILE.m3u8 ]] && curl -s $MEDIASOURCE/$AUDIOFILE.m3u8 -o /tmp/$VUID/media/$AUDIOFILE.m3u8
[[ ! -f /tmp/$VUID/media/$AUDIOFILE ]] && curl $MEDIASOURCE/$AUDIOFILE -o /tmp/$VUID/media/$AUDIOFILE [[ ! -f /tmp/$VUID/media/$AUDIOFILE ]] && curl $MEDIASOURCE/$AUDIOFILE -o /tmp/$VUID/media/$AUDIOFILE
IPFSAUD=$(ipfs add -wrHq /tmp/$VUID/media/$AUDIOFILE | tail -n 1) ## ADD AUDIO TO IPFS # IPFSAUD=$(ipfs add -wrHq /tmp/$VUID/media/$AUDIOFILE | tail -n 1) ## ADD AUDIO TO IPFS
# echo "AUDIO = $IPFSNGW/ipfs/$IPFSAUD/$AUDIOFILE"
echo "AUDIO = $IPFSNGW/ipfs/$IPFSAUD/$AUDIOFILE"
end=`date +%s`; echo `expr $end - $start` seconds.
echo ">>>>>>>>>>>>>>>> VIDEO & AUDIO M3U8 IPFS LINKING" echo ">>>>>>>>>>>>>>>> VIDEO & AUDIO M3U8 IPFS LINKING"
#echo "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g" #echo "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g"
sed -i "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g" /tmp/$VUID/$VIDEOSRC.m3u8 # sed -i "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g" /tmp/$VUID/$VIDEOSRC.m3u8
echo "cat /tmp/$VUID/$VIDEOSRC.m3u8" # echo "cat /tmp/$VUID/$VIDEOSRC.m3u8"
#echo "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g" #echo "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g"
sed -i "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g" /tmp/$VUID/$AUDIOFILE.m3u8 # sed -i "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g" /tmp/$VUID/$AUDIOFILE.m3u8
echo "cat /tmp/$VUID/$AUDIOFILE.m3u8" # echo "cat /tmp/$VUID/$AUDIOFILE.m3u8"
echo "Adding M3U8 to IPFS" # echo "Adding M3U8 to IPFS"
start=`date +%s` # IPFSVIDM3U8=$(ipfs add -wrHq /tmp/$VUID/$VIDEOSRC.m3u8 | tail -n 1) ## ADD VIDEO.m3u8 TO IPFS
IPFSVIDM3U8=$(ipfs add -wrHq /tmp/$VUID/$VIDEOSRC.m3u8 | tail -n 1) ## ADD VIDEO.m3u8 TO IPFS # IPFSAUDM3U8=$(ipfs add -wrHq /tmp/$VUID/$AUDIOFILE.m3u8 | tail -n 1) ## ADD AUDIO.m3u8 TO IPFS
IPFSAUDM3U8=$(ipfs add -wrHq /tmp/$VUID/$AUDIOFILE.m3u8 | tail -n 1) ## ADD AUDIO.m3u8 TO IPFS
end=`date +%s`; echo `expr $end - $start` seconds.
echo ">>>>>>>>>>>>>>>> CREATING MAIN M3U8" echo ">>>>>>>>>>>>>>>> CREATING NEW M3U8"
echo "#EXTM3U echo "#EXTM3U
#EXT-X-VERSION:6 #EXT-X-VERSION:6
#EXT-X-INDEPENDENT-SEGMENTS #EXT-X-INDEPENDENT-SEGMENTS
@ -101,47 +98,43 @@ for VUID in $(cat /tmp/crowd.json | jq -r '.posts | .[] | .video.id'); do
$AUDIOLINE $AUDIOLINE
$VIDEOHEAD $VIDEOHEAD
$IPFSNGW/ipfs/$IPFSVIDM3U8/$VIDEOSRC.m3u8 $VIDEOSRC.m3u8
" > /tmp/$VUID/$VUID.m3u8 " > /tmp/$VUID/media/$VUID.m3u8
sed -i "s/$AUDIOFILE.m3u8/$IPFSGWESC\/ipfs\/$IPFSAUDM3U8\/$AUDIOFILE.m3u8/g" /tmp/$VUID/$VUID.m3u8 # sed -i "s/$AUDIOFILE.m3u8/$IPFSGWESC\/ipfs\/$IPFSAUDM3U8\/$AUDIOFILE.m3u8/g" /tmp/$VUID/$VUID.m3u8
echo "FINAL IPFS" ##########################################################################
IPFSM3U8=$(ipfs add -wrHq /tmp/$VUID/$VUID.m3u8 | tail -n 1) echo ">>>>>>>>>>>>>>>> CREATE index.html"
VMAIN="$IPFSNGW/ipfs/$IPFSM3U8/$VUID.m3u8"
echo $VMAIN # COPY index, style AND js
cp -Rv ${MY_PATH}/../templates/styles /tmp/$VUID/media/
cp -Rv ${MY_PATH}/../templates/js /tmp/$VUID/media/
cp -v ${MY_PATH}/../templates/videojs.html /tmp/$VUID/media/index.html
sed -i s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g /tmp/$VUID/media/index.html
sed -i "s~_PSEUDO_~$TITLE~g" /tmp/$VUID/media/index.html
echo "ipfs add -rwH /tmp/$VUID/media/* "
IPFSROOT=$(ipfs add -rwHq /tmp/$VUID/media/* | tail -n 1)
# Change CSS path to
sed -i "s/_IPFSROOT_/\/ipfs\/$IPFSROOT/g" /tmp/$VUID/media/index.html
sed -i "s/_HLS_/$VUID.m3u8/g" /tmp/$VUID/media/index.html
INDEX=$(ipfs add -rwHq /tmp/$VUID/media/index.html | tail -n 1)
echo "VIDEO PLAYER : $IPFSNGW/ipfs/$INDEX"
echo ">>>>>>>>>>>>>>>> UPDATING HLS in json" echo ">>>>>>>>>>>>>>>> UPDATING HLS in json"
cat /tmp/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > /tmp/$VUID/z_$VUID.json VMAIN="/ipfs/$IPFSROOT/$VUID.m3u8"
echo "M3U8 CELL $IPFSNGW$VMAIN"
cat /tmp/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > /tmp/$VUID/$VUID.json
########################################################################## ##########################################################################
echo ">>>>>>>>>>>>>>>> JOIN MP4 & PUBLISH INDEX" cat /tmp/$VUID/$VUID.json | jq -r .video.hlsManifest.url
# CONVERT TO MP4
# echo "ffmpeg -i /tmp/$VUID/media/$VIDEOSRC -i /tmp/$VUID/media/$AUDIOFILE -shortest /tmp/$VUID/media/output.mp4"
# [[ ! -f /tmp/$VUID/media/output.mp4 ]] && ffmpeg -i /tmp/$VUID/media/$VIDEOSRC -i /tmp/$VUID/media/$AUDIOFILE -shortest /tmp/$VUID/media/output.mp4
# IPFSID=$(ipfs add -wrHq /tmp/$VUID/media/output.mp4 | tail -n 1)
mkdir -p /tmp/$VUID/public end=`date +%s`; echo Duration `expr $end - $start` seconds.
# sed "s/_IPFSID_/$IPFSGWESC\/ipfs\/$IPFSID/g" ${MY_PATH}/../templates/video_bunker.html > /tmp/$VUID/public/index.html
sed "s-_HLS_-$VMAIN-g" ${MY_PATH}/../templates/videojs.html > /tmp/$VUID/public/index.html
sed -i s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g /tmp/$VUID/public/index.html
sed -i "s/_PSEUDO_/$TITLE/g" /tmp/$VUID/public/index.html
# COPY style AND js
cp -R ${MY_PATH}/../templates/styles /tmp/$VUID/public/
cp -R ${MY_PATH}/../templates/js /tmp/$VUID/public/
echo "ipfs add -rH /tmp/$VUID/public/* "
IPFSROOT=$(ipfs add -rwHq /tmp/$VUID/public/* | tail -n 1)
# Change CSS path to
sed -i "s/_IPFSROOT_/$IPFSGWESC\/ipfs\/$IPFSROOT/g" /tmp/$VUID/public/index.html
IPFSROOT=$(ipfs add -rwHq /tmp/$VUID/public/* | tail -n 1)
echo "MP4 VIDEO INDEX $IPFSNGW/ipfs/$IPFSROOT"
##########################################################################
echo $VMAIN
echo "CONTINUE ?"; read echo "CONTINUE ?"; read
done done