From c13eb2d6ea56ed68a88a86e13409a07c990cab96 Mon Sep 17 00:00:00 2001 From: qo-op Date: Wed, 24 Feb 2021 20:43:47 +0100 Subject: [PATCH] Copie Youtube = Video/MP3 youtube-dl --- ajouter_video.sh | 43 ++++++++++++++++++++++---- zen/new_file_in_astroport.sh | 58 ++++++++++++++++++++++-------------- 2 files changed, 72 insertions(+), 29 deletions(-) diff --git a/ajouter_video.sh b/ajouter_video.sh index c6257a6..a0c358f 100755 --- a/ajouter_video.sh +++ b/ajouter_video.sh @@ -82,12 +82,41 @@ case ${PREFIX} in ######################################################################## Y) -[[ ! -d ~/astroport/youtube ]] && mkdir -p ~/astroport/youtube YTURL=$(zenity --entry --width 300 --title "Lien ou identifiant à copier" --text "Copiez le lien (URL) ou l'ID de la vidéo" --entry-text="") [[ $YTURL == "" ]] && exit 1 -youtube-dl --no-mtime -o "~/astroport/youtube/%(id)s_%(title)s.%(ext)s" $YTURL - +# Create TEMP directory +YTEMP="/tmp/$(date -u +%s%N | cut -b1-13)" +mkdir -p ${YTEMP} +CONVERT=$(zenity --question --width 300 --title "Convertir en MP3 ?" --text "Voulez-vous convertir la vidéo en mp3?" ) + +# youtube-dl $YTURL +if [ $? == 1 ]; then +echo "VIDEO" +/usr/local/bin/youtube-dl -f '[height=720]/best' \ +--write-info-json --write-annotations \ +--no-mtime -o "${YTEMP}/%(id)s_%(title)s.%(ext)s" $YTURL +inpath="youtube" +else +echo "MP3" +/usr/local/bin/youtube-dl -x --audio-format mp3 \ +--write-info-json --add-metadata --embed-thumbnail \ +--no-mtime -o "${YTEMP}/%(id)s_%(title)s.%(ext)s" $YTURL +inpath="mp3" +fi + +# Get filename, extract ID, make destination dir and move copy. +YFILE=$(ls -t ${YTEMP} | head -n 1) +YID=$(echo "${YFILE}" | cut -d "_" -f 1) + +FILE_PATH="$HOME/astroport/$inpath/$YID" +mkdir -p ${FILE_PATH} && mv ${YTEMP}/* ${FILE_PATH}/ + +FILE_NAME="$(basename "${YFILE}")" +TMDB=$YID + +rm -Rf ${YTEMP} +echo "DONE" && exit 1 ;; ######################################################################## @@ -195,12 +224,14 @@ echo "${CAT};$TMDB;$YEAR;$TITLE;$SAISON;${GENRES};${GROUPES};$RES;/ipfs/_IPFSREP mv "${FILE_PATH}/${FILE_NAME}" ~/astroport/${CAT}/${TMDB}/ && zenity --warning --width ${large} --text "Votre fichier est prêt ~/astroport/${CAT}/${TMDB}/${FILE_NAME} à embarquer. Cliquez sur OK puis patientez quelques minutes..." + ;; +esac + ######################################################################## # ADD $FILE to IPFS / ASTROPORT / KODI +######################################################################## ~/.zen/astrXbian/zen/new_file_in_astroport.sh "$HOME/astroport/${CAT}/${TMDB}/" "${FILE_NAME}" ######################################################################## +######################################################################## zenity --warning --width 300 --text "OK! Vidéo $FILE_NAME transférée dans Kodi/Vstream/Astroport" - - ;; -esac diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh index c0cecec..0399d62 100755 --- a/zen/new_file_in_astroport.sh +++ b/zen/new_file_in_astroport.sh @@ -34,20 +34,25 @@ TITLE="${file%.*}" # GET XZUID [[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(hostname) -[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && echo "Fichiers à placer dans ~/astroport/ MERCI" && exit 1 +[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && echo "Les fichiers sont à placer dans ~/astroport/ MERCI" && exit 1 TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... film, youtube, mp3 CAT=$(echo "$TYPE" | awk '{ print tolower($0) }') -[[ ! $CAT ]] && echo "CAT est le 5e champs de $path" && exit 1 +[[ ! $CAT ]] && echo "CAT est le 5e sous-répertoire de $path" && exit 1 -PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M - -TMDB=$(echo "$path" | cut -d '/' -f 6 ) -[ "$TMDB" -ne "$TMDB" ] && echo "ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ " && exit 1 # $TMDB NOT A NUMBER +PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y +if [[ "$PREFIX" == "Y" ]]; then + INDEXPREFIX="YOUTUBE_" + REFERENCE=$(echo "$file" | cut -d "_" -f 1) # Youtube filename starts with ID_ +else + INDEXPREFIX="TMDB_" + REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Contains TMDB id + [ "${REFERENCE}" -ne "${REFERENCE}" ] && echo "ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ " && exit 1 # ${REFERENCE} NOT A NUMBER +fi # File is placed in ROOT ~/astroport ? [[ $PREFIX == "" ]] && echo "WARNING. $TYPE is root file UNTREATED" && exit 1 -echo "ADDING ${path}${file} to IPFS and ${PREFIX}ASTRXBIAN INDEX" +echo "ADDING ${path}${file} to IPFS and create ${PREFIX}ASTRXBIAN INDEX" echo "~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN" echo "-----------------------------------------------------------------" @@ -62,27 +67,33 @@ echo "New $TYPE INDEX ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri) ######################################################################## -## CREATE NEW ipns KEY : TMDB_$TMDB +## CREATE NEW ipns KEY : ${INDEXPREFIX}${REFERENCE} ######################################################################## ######################################################################## -[[ ! -d ~/.zen/KEY/TMDB_$TMDB/${G1PUB} ]] && mkdir -p ~/.zen/KEY/TMDB_$TMDB/${G1PUB} && KEY=$(ipfs key gen "TMDB_$TMDB") && KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) +[[ ! -d ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} ]] && mkdir -p ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} && KEY=$(ipfs key gen "${INDEXPREFIX}${REFERENCE}") && KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) ## INIT ipns if [[ $KEY ]]; then - echo "$KEYFILE" > ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.ipns.key.keystore_filename - echo "$KEY" > ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.ipns.link - touch ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.zen - echo "/ipfs/$IPFSREPFILEID/${file}" > ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.ipfs.filelink - mv ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/ -# echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/TMDB_$TMDB/ipns.html -# TRY NATOOLS FOR SECURE SHARING # $MY_PATH/jaklis/lib/natools.py encrypt -k $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/TMDB_$TMDB/.ipns.key.encrypt.natools - $MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/TMDB_$TMDB/.ipns.key.natools.encrypt - $MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/TMDB_$TMDB/.ipfs.filelink.natools.encrypt - rm ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/.ipfs.filelink + # memorize IPNS key filename for easiest exchange + echo "$KEYFILE" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.key.keystore_filename + # Publishing IPNS key + echo "$KEY" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link + # .zen could contain ZEN for economic value + touch ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.zen + # CLEAR ipfs link (is then cyphered to manage exchange regulation) + echo "/ipfs/$IPFSREPFILEID/${file}" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink + # TRANSFERT from ajouter_video.sh "ajouter_video.txt" later used line 118 + mv ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ +# echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/ipns.html +# TRY NATOOLS FOR SECURE SHARING # $MY_PATH/jaklis/lib/natools.py encrypt -k $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/.ipns.key.encrypt.natools + $MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/.ipns.key.natools.encrypt + $MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/.ipfs.filelink.natools.encrypt + rm ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink fi # IPNS index.html Redirect to ipfs streaming link (could be contract or anything !!) -echo "" > ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/index.html -NEWIPFS=$(ipfs add -rHq ~/.zen/KEY/TMDB_$TMDB/ | tail -n 1 ) -ipfs name publish --key="TMDB_$TMDB" $NEWIPFS +echo "" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html +echo "

REJOIGNEZ ASTROPORT/KODI

" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/index.html +NEWIPFS=$(ipfs add -rHq ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/ | tail -n 1 ) +ipfs name publish --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS ######################################################################## ######################################################################## @@ -104,7 +115,7 @@ if [[ ! $isFILEinINDEX && ! $isLINKinINDEX ]]; then touch ~/.zen/ipfs/.${IPFSNODEID}/PIN/${IPFSREPFILEID}/$G1PUB # SIMILAR with "ipfs ls /ipns/${IPFSNODEID}/.${IPFSNODEID}/PIN/ (...)" # TODO: switch case $PREFIX - [[ -f ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/ajouter_video.txt ]] && line=$(cat ~/.zen/KEY/TMDB_$TMDB/${G1PUB}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g") || line="$CAT;$TMDB;$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" + [[ -f ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt ]] && line=$(cat ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g") || line="$CAT;${REFERENCE};$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" echo "$line" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN else if [[ $isFILEinMYINDEX ]]; then @@ -132,3 +143,4 @@ echo "--------------- KODI INDEX UPDATED ----------------------" echo "NEW $TYPE ($file) ADDED." echo "INDEX UPDATED : http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN" echo "VIDEO IPNS LINK : http://localhost:8181/ipns/$KEY/$G1PUB/" +