Copie Youtube = Video/MP3 youtube-dl

This commit is contained in:
qo-op 2021-02-24 20:43:47 +01:00
parent f5d32d76a0
commit c13eb2d6ea
2 changed files with 72 additions and 29 deletions

View File

@ -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

View File

@ -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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipns/$KEY/TMDB_$TMDB/${G1PUB}/\">" > ~/.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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipns/$KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/\">" > ~/.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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html
echo "<h1>REJOIGNEZ <a href='https://astroport.com'>ASTROPORT</a>/KODI</h1>" > ~/.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/"