forked from STI/Astroport.ONE
Bunker BOX history
This commit is contained in:
parent
3658c59bda
commit
d4b6d703f4
|
@ -0,0 +1,151 @@
|
|||
#!/bin/bash
|
||||
################################################################################
|
||||
# Author: Fred (support@qo-op.com)
|
||||
# Version: 0.1
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
################################################################################
|
||||
mkdir -p ~/.zen/bunkerbox # BunkerBOX temp directory
|
||||
# Fred MadeInZion, [20/03/2022 23:03]
|
||||
# Script qui capture et transfert dans IPFS le flux des nouvelles vidéos de https://crowdbunker.com/
|
||||
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
TS=$(date -u +%s%N | cut -b1-13)
|
||||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || echo " warning ipfs daemon not running"
|
||||
isLAN=$(hostname -I | awk '{print $1}' | head -n 1 | cut -f3 -d '/' | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
||||
|
||||
IPFSGWESC="https:\/\/tube.copylaradio.com" && IPFSNGW="https://tube.copylaradio.com"
|
||||
IPFSGWESC="http:\/\/127.0.0.1:8080" && IPFSNGW="http://127.0.0.1:8080"
|
||||
|
||||
[[ ! $isLAN ]] && IPFSGWESC="https:\/\/$(hostname)" && IPFSNGW="https://$(hostname)"
|
||||
echo "IPFS GATEWAY $IPFSNGW"
|
||||
|
||||
## GET LATEST VIDEOS
|
||||
VWALLURL="https://api.crowdbunker.com/post/all"
|
||||
curl -s $VWALLURL -H "Accept: application/json" > ~/.zen/bunkerbox/crowd.json
|
||||
|
||||
## LOOP THROUGH
|
||||
for VUID in $(cat ~/.zen/bunkerbox/crowd.json | jq -r '.posts | .[] | .video.id'); do
|
||||
start=`date +%s`
|
||||
[[ "$VUID" == "null" ]] && echo "MESSAGE... Bypassing..." && echo && continue
|
||||
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
|
||||
|
||||
# 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)
|
||||
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)
|
||||
|
||||
HLS=$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r .video.hlsManifest.url)
|
||||
MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev)
|
||||
echo "$TITLE ($DURATION s)"
|
||||
|
||||
echo "READY TO PROCESS ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue
|
||||
echo "$HLS"
|
||||
curl -s $HLS -o ~/.zen/bunkerbox/$VUID/$VUID.m3u8
|
||||
# cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> Downloading VIDEO"
|
||||
# Choose 360p or 480p 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=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 '.')
|
||||
VTHUMB="$(cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq -r --arg VSIZE "$VSIZE" '.video.thumbnails[] | select(.height == $VSIZE) | .url')"
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> Downloading Video $VSIZE Thumbnail"
|
||||
curl -s $VTHUMB -o ~/.zen/bunkerbox/$VUID/media/$VUID.jpg
|
||||
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$VUID.jpg ]] && cp ~/.zen/bunkerbox/$VUID/media/astroport.jpg ~/.zen/bunkerbox/$VUID/media/$VUID.jpg # CORRECT MISSING THUMB
|
||||
|
||||
echo "VIDEOSRC=$MEDIASOURCE/$VIDEOSRC"
|
||||
# Downloading Video m3u8 and Video
|
||||
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$VIDEOSRC.m3u8 ]] && curl -s $MEDIASOURCE/$VIDEOSRC.m3u8 -o ~/.zen/bunkerbox/$VUID/media/$VIDEOSRC.m3u8
|
||||
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$VIDEOSRC ]] && curl $MEDIASOURCE/$VIDEOSRC -o ~/.zen/bunkerbox/$VUID/media/$VIDEOSRC
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> Downloading AUDIO"
|
||||
AUDIOLINE=$(cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 | grep '=AUDIO')
|
||||
AUDIOFILE=$(echo $AUDIOLINE | rev | cut -d '.' -f 2- | cut -d '"' -f 1 | rev)
|
||||
echo "AUDIO=$MEDIASOURCE/$AUDIOFILE"
|
||||
# Downloading Audio m3u8 and Audio
|
||||
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$AUDIOFILE.m3u8 ]] && curl -s $MEDIASOURCE/$AUDIOFILE.m3u8 -o ~/.zen/bunkerbox/$VUID/media/$AUDIOFILE.m3u8
|
||||
[[ ! -f ~/.zen/bunkerbox/$VUID/media/$AUDIOFILE ]] && curl $MEDIASOURCE/$AUDIOFILE -o ~/.zen/bunkerbox/$VUID/media/$AUDIOFILE
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> CREATING $VSIZE M3U8"
|
||||
echo "#EXTM3U
|
||||
#EXT-X-VERSION:6
|
||||
#EXT-X-INDEPENDENT-SEGMENTS
|
||||
|
||||
$AUDIOLINE
|
||||
|
||||
$VIDEOHEAD
|
||||
$VIDEOSRC.m3u8
|
||||
|
||||
" > ~/.zen/bunkerbox/$VUID/media/$VUID.m3u8
|
||||
ls ~/.zen/bunkerbox/$VUID/media/
|
||||
##########################################################################
|
||||
echo "##########################################################################"
|
||||
echo ">>>>>>>>>>>>>>>> ADDING index.html"
|
||||
# COPY index, style, js AND data
|
||||
cp -R ${MY_PATH}/templates/styles ~/.zen/bunkerbox/$VUID/media/
|
||||
cp -R ${MY_PATH}/templates/js ~/.zen/bunkerbox/$VUID/media/
|
||||
cp ${MY_PATH}/templates/videojs.html ~/.zen/bunkerbox/$VUID/media/index.html
|
||||
cp ${MY_PATH}/images/astroport.jpg ~/.zen/bunkerbox/$VUID/media/
|
||||
|
||||
# Add current reversed history
|
||||
if [[ -f ~/.zen/bunkerbox/history.json ]]; then
|
||||
echo '{
|
||||
"Videos":' > ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
cat ~/.zen/bunkerbox/history.json | jq '.[] | reverse' >> ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
echo '}' >> ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
else
|
||||
cp ${MY_PATH}/templates/data/history.json ~/.zen/bunkerbox/history.json
|
||||
fi
|
||||
# Using relative 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
|
||||
sed -i "s~_TITLE_~$TITLE~g" ~/.zen/bunkerbox/$VUID/media/index.html
|
||||
sed -i "s~_CHANNEL_~$CHANNEL~g" ~/.zen/bunkerbox/$VUID/media/index.html
|
||||
|
||||
echo ">>>>> ADDING TO IPFS : ipfs add -rwH ~/.zen/bunkerbox/$VUID/media/* "
|
||||
echo
|
||||
IPFSROOT=$(ipfs add -rwHq ~/.zen/bunkerbox/$VUID/media/* | tail -n 1)
|
||||
INDEX="/ipfs/$IPFSROOT"
|
||||
|
||||
|
||||
VMAIN="/ipfs/$IPFSROOT/$VUID.m3u8"
|
||||
# UPDATING original JSON
|
||||
cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > ~/.zen/bunkerbox/$VUID/media/$VUID.json
|
||||
|
||||
echo "M3U8 : $IPFSNGW$VMAIN"
|
||||
|
||||
## UPDATE GLOCAL HISTORY ?
|
||||
IsThere=$(cat ~/.zen/bunkerbox/history.json | jq .Videos[].link | grep $VUID)
|
||||
[[ ! $IsThere ]] && echo "Add $INDEX/$VUID.jpg to history.json" && cat ~/.zen/bunkerbox/history.json | jq '.Videos += [{"link": "<a href='"'_INDEX_'"'><img src='"'_INDEX_/_VUID_.jpg'"' height=80 >'"'_TITLE_'"'</a>"}]' > ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
sed -i "s~_INDEX_~$INDEX~g" ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
sed -i "s~_VUID_~$VUID~g" ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
sed -i "s~_TITLE_~$TITLE~g" ~/.zen/bunkerbox/$VUID/media/$VUID.history.json
|
||||
cp -f ~/.zen/bunkerbox/$VUID/media/history.json ~/.zen/bunkerbox/$VUID.history.json
|
||||
|
||||
## (found ''' later) COULD BE DONE LIKE THAT
|
||||
# cat ~/.zen/bunkerbox/$VUID/media/$VUID.history.json | jq --arg INDEX "$INDEX" --arg TITLE "$TITLE" '.Videos += [{"link": "<a href='''$INDEX''' >'''$TITLE'''</a>"}]' > ~/.zen/bunkerbox/history.json
|
||||
|
||||
echo "HIST: $IPFSNGW/ipfs/$IPFSROOT"
|
||||
echo "JSON : $IPFSNGW/ipfs/$IPFSROOT/$VUID.json"
|
||||
##########################################################################
|
||||
# cat ~/.zen/bunkerbox/$VUID/media/$VUID.json | jq -r .video.hlsManifest.url
|
||||
|
||||
end=`date +%s`; echo Duration `expr $end - $start` seconds.
|
||||
|
||||
done
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"Videos": [
|
||||
|
||||
]
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,39 +2,49 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>_PSEUDO_ [IPFS Bunker BOX]</title>
|
||||
<title>_CHANNEL_ : _TITLE_ [BunkerBOX]</title>
|
||||
<link rel="icon" type="image/png" href="_IPFSROOT_/styles/logo.png" />
|
||||
<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/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://crowdbunker.com"> "<span>Bunker BOX</span>"</a> IPFS
|
||||
<a href="https://crowdbunker.com/v/_VUID_" target="bunker"> "<span>CrowdBunker</span>"</a> /ipfs/
|
||||
</h6>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<center>
|
||||
<div class="row justify-center">
|
||||
<video
|
||||
id="_HLS_"
|
||||
id="vbunk"
|
||||
class="video-js vjs-theme-forest"
|
||||
controls
|
||||
preload="auto"
|
||||
poster="_IPFSROOT_/astroport.jpg"
|
||||
data-setup="{}"
|
||||
width="auto" height="auto"
|
||||
poster="_IPFSROOT_/_VUID_.jpg"
|
||||
|
||||
>
|
||||
<source src="_IPFSROOT_/_HLS_" type="application/x-mpegURL" />
|
||||
<source src="_IPFSROOT_/_VUID_.m3u8" type="application/x-mpegURL" />
|
||||
<p class="vjs-no-js">
|
||||
Activer JavaScript SVP
|
||||
</p>
|
||||
</video>
|
||||
</div>
|
||||
</center>
|
||||
<article>
|
||||
<h1 class="video-title">
|
||||
_PSEUDO_ (_DATE_)
|
||||
_TITLE_ (_DATE_)
|
||||
</h1>
|
||||
</article>
|
||||
|
||||
<center>
|
||||
<div id="videosList"><div class="wrapper"></div></div>
|
||||
</center>
|
||||
|
||||
<h6>
|
||||
powered by <a href="https://astroport.com"><span>"</span>Astroport<span>"</span></a>
|
||||
</h6>
|
||||
|
@ -43,11 +53,30 @@
|
|||
</body>
|
||||
|
||||
<script src="_IPFSROOT_/js/video.min.js"></script>
|
||||
|
||||
<script src="_IPFSROOT_/js/jquery.min.js"></script>
|
||||
<script src="_IPFSROOT_/js/pagination.min.js"></script>
|
||||
<link rel="stylesheet" href="_IPFSROOT_/styles/pagination.css" />
|
||||
<script>
|
||||
var player = videojs('_HLS_', {
|
||||
var player = videojs('vbunk', {
|
||||
autoplay: 'muted'
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$.getJSON('./_VUID_.history.json', function (json) {
|
||||
$('#videosList').pagination({
|
||||
dataSource: json.Videos,
|
||||
pageSize: 1,
|
||||
callback: function(data, pagination) {
|
||||
var wrapper = $('#videosList .wrapper').empty();
|
||||
$.each(data, function (i, f) {
|
||||
$('#videosList .wrapper').append('<ul><li>' + f.link + '</li></ul>');
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,143 +0,0 @@
|
|||
#!/bin/bash
|
||||
################################################################################
|
||||
# Author: Fred (support@qo-op.com)
|
||||
# Version: 0.1
|
||||
# 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##*/}"
|
||||
TS=$(date -u +%s%N | cut -b1-13)
|
||||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || echo " warning ipfs daemon not running"
|
||||
isLAN=$(hostname -I | awk '{print $1}' | head -n 1 | cut -f3 -d '/' | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
||||
|
||||
# Fred MadeInZion, [20/03/2022 23:03]
|
||||
# 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="http:\/\/127.0.0.1:8080" && IPFSNGW="http://127.0.0.1:8080"
|
||||
|
||||
[[ ! $isLAN ]] && IPFSGWESC="https:\/\/$(hostname)" && IPFSNGW="https://$(hostname)"
|
||||
|
||||
echo "IPFS GATEWAY $IPFSNGW"
|
||||
|
||||
## GET LATEST VIDEOS
|
||||
VWALLURL="https://api.crowdbunker.com/post/all"
|
||||
curl -s $VWALLURL -H "Accept: application/json" > /tmp/crowd.json
|
||||
|
||||
## LOOP THROUGH
|
||||
for VUID in $(cat /tmp/crowd.json | jq -r '.posts | .[] | .video.id'); do
|
||||
start=`date +%s`
|
||||
[[ "$VUID" == "null" ]] && echo "MESSAGE... Bypassing..." && echo && continue
|
||||
echo "Bunker BOX : Adding $VUID"
|
||||
mkdir -p /tmp/$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 /tmp/$VUID/$VUID.json
|
||||
|
||||
# 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... "
|
||||
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
|
||||
TITLE=$(cat /tmp/$VUID/$VUID.json | jq -r .video.title)
|
||||
HLS=$(cat /tmp/$VUID/$VUID.json | jq -r .video.hlsManifest.url)
|
||||
MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev)
|
||||
echo "$TITLE ($DURATION s)"
|
||||
echo "$HLS"
|
||||
|
||||
echo "READY TO PROCESS ?"; read TEST; [[ "$TEST" != "" ]] && echo && continue
|
||||
curl -s $HLS -o /tmp/$VUID/$VUID.m3u8
|
||||
cat /tmp/$VUID/$VUID.m3u8
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> Downloading VIDEO"
|
||||
# Choose 360p or 480p or 240p
|
||||
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" == "" ]] && 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
|
||||
echo "VIDEOSRC=$MEDIASOURCE/$VIDEOSRC"
|
||||
# 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
|
||||
|
||||
# IPFSVID=$(ipfs add -wrHq /tmp/$VUID/media/$VIDEOSRC | tail -n 1) ## ADD VIDEO TO IPFS
|
||||
# echo "VIDEO = $IPFSNGW/ipfs/$IPFSVID/$VIDEOSRC"
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> Downloading AUDIO"
|
||||
AUDIOLINE=$(cat /tmp/$VUID/$VUID.m3u8 | grep '=AUDIO')
|
||||
AUDIOFILE=$(echo $AUDIOLINE | rev | cut -d '.' -f 2- | cut -d '"' -f 1 | rev)
|
||||
echo "AUDIO=$MEDIASOURCE/$AUDIOFILE"
|
||||
# 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
|
||||
|
||||
# IPFSAUD=$(ipfs add -wrHq /tmp/$VUID/media/$AUDIOFILE | tail -n 1) ## ADD AUDIO TO IPFS
|
||||
# echo "AUDIO = $IPFSNGW/ipfs/$IPFSAUD/$AUDIOFILE"
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> VIDEO & AUDIO M3U8 IPFS LINKING"
|
||||
|
||||
#echo "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g"
|
||||
# sed -i "s/$VIDEOSRC/$IPFSGWESC\/ipfs\/$IPFSVID\/$VIDEOSRC/g" /tmp/$VUID/$VIDEOSRC.m3u8
|
||||
# echo "cat /tmp/$VUID/$VIDEOSRC.m3u8"
|
||||
|
||||
#echo "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g"
|
||||
# sed -i "s/$AUDIOFILE/$IPFSGWESC\/ipfs\/$IPFSAUD\/$AUDIOFILE/g" /tmp/$VUID/$AUDIOFILE.m3u8
|
||||
# echo "cat /tmp/$VUID/$AUDIOFILE.m3u8"
|
||||
|
||||
# echo "Adding 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
|
||||
|
||||
echo ">>>>>>>>>>>>>>>> CREATING NEW M3U8"
|
||||
echo "#EXTM3U
|
||||
#EXT-X-VERSION:6
|
||||
#EXT-X-INDEPENDENT-SEGMENTS
|
||||
|
||||
$AUDIOLINE
|
||||
|
||||
$VIDEOHEAD
|
||||
$VIDEOSRC.m3u8
|
||||
|
||||
" > /tmp/$VUID/media/$VUID.m3u8
|
||||
|
||||
# sed -i "s/$AUDIOFILE.m3u8/$IPFSGWESC\/ipfs\/$IPFSAUDM3U8\/$AUDIOFILE.m3u8/g" /tmp/$VUID/$VUID.m3u8
|
||||
|
||||
##########################################################################
|
||||
echo ">>>>>>>>>>>>>>>> CREATE index.html"
|
||||
|
||||
# COPY index, style AND js
|
||||
cp -R ${MY_PATH}/../templates/styles /tmp/$VUID/media/
|
||||
cp -R ${MY_PATH}/../templates/js /tmp/$VUID/media/
|
||||
cp ${MY_PATH}/../templates/videojs.html /tmp/$VUID/media/index.html
|
||||
cp ${MY_PATH}/../images/astroport.jpg /tmp/$VUID/media/
|
||||
|
||||
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
|
||||
|
||||
VMAIN="/ipfs/$IPFSROOT/$VUID.m3u8"
|
||||
echo "M3U8 : $IPFSNGW$VMAIN"
|
||||
|
||||
INDEX=$(ipfs add -rwHq /tmp/$VUID/media/index.html | tail -n 1)
|
||||
echo "INDEX: $IPFSNGW/ipfs/$INDEX"
|
||||
|
||||
cat /tmp/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > /tmp/$VUID/media/$VUID.json
|
||||
|
||||
JSON=$(ipfs add -rwHq /tmp/$VUID/media/$VUID.json | tail -n 1)
|
||||
echo "JSON : $IPFSNGW/ipfs/$JSON"
|
||||
##########################################################################
|
||||
# cat /tmp/$VUID/media/$VUID.json | jq -r .video.hlsManifest.url
|
||||
|
||||
end=`date +%s`; echo Duration `expr $end - $start` seconds.
|
||||
|
||||
echo "CONTINUE ?"; read
|
||||
|
||||
done
|
|
@ -44,9 +44,12 @@ kill -15 $processid
|
|||
## RECOMMANCER ?
|
||||
|
||||
espeak "mp4 transcoding" #-acodec aac
|
||||
# ffmpeg -i input.mp4 -i greenscreen.mp4 -filter_complex '[1:v]colorkey=color=00FF00:similarity=0.85:blend=0.0[ckout];[0:v][ckout]overlay[out]' -map '[out]' output.mp4
|
||||
# Ecran vert : ffmpeg -i input.mp4 -i greenscreen.mp4 -filter_complex '[1:v]colorkey=color=00FF00:similarity=0.85:blend=0.0[ckout];[0:v][ckout]overlay[out]' -map '[out]' output.mp4
|
||||
|
||||
rm -f ~/.zen/tmp/output.mp4
|
||||
ffmpeg -i ~/.zen/tmp/MyVid.mp4 -vcodec libx264 -loglevel quiet ~/.zen/tmp/output.mp4
|
||||
# Conversion HLS
|
||||
ffmpeg -i ~/.zen/tmp/output.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls ~/.zen/tmp/output.m3u8
|
||||
IPFSID=$(ipfs add -wrHq ~/.zen/tmp/output.mp4 | tail -n 1)
|
||||
echo "NEW VIDEO FILE /ipfs/$IPFSID/output.mp4"
|
||||
|
||||
|
|
Loading…
Reference in New Issue