/!d' > $TMP_DIR/video-cleaned.html
-
- if [ -f ${TMP_DIR}/titles.txt ] ; then
- rm ${TMP_DIR}/titles.txt
- fi
- cat ${TMP_DIR}/video-cleaned.html | while read line; do
- sessionNum=`echo $line | grep -o -E '
(.*)(.*)' | grep -o -E 'Session [0-9]*' | cut -d' ' -f2`
- title_array[$sessionNum]=`echo $line | grep -o -E '
(.*)(.*)' | cut -d'>' -f2 | sed 's/<\/li$//g'`
- echo "$sessionNum,${title_array[$sessionNum]}" >> $TMP_DIR/titles.txt
- done
- `sed -n '/^,/!p' $TMP_DIR/titles.txt > $TMP_DIR/titles.txt.tmp && mv $TMP_DIR/titles.txt.tmp $TMP_DIR/titles.txt`
-
- while read line
- do
- sessionNum=`echo $line | cut -d',' -f1`
- sessionTitle=`echo $line | cut -d',' -f2`
- title_array[$sessionNum]=${sessionTitle}
- done < ${TMP_DIR}/titles.txt
-
- if [ ${LIST_MODE} == true ];
- then
- echo "Available videos:"
- echo "-----------------"
- cat ${TMP_DIR}/titles.txt | cut -d',' -f1 | while read line; do
- echo "${line}: ${title_array[$line]}"
- #printf '%s\n' "${title_array[@]}"
- done;
- exit
- fi
-
-
- echo "******* DOWNLOADING PDF FILES ********"
-
- # PDF
- mkdir -p "${WWDC_DIRNAME}"/PDFs
-
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/PDFs/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- # echo "Hello, de Lu!"
- :
- else
- echo "Some download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/PDFs/*.download
- echo "Cleaning non fully downloaded files: OK."
- fi
- i=0
- cat ${TMP_DIR}/video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/wwdc\/'${YEAR}'\/[0-9a-zA-Z]*\/[0-9]{1,5}\/([0-9]{1,5}|[0-9]{1,5}_.*)\.pdf\?dl=1+)"' | cut -d'"' -f2 | sed -e 's/_sd_/_/g' -e 's/.mov/.pdf/g' | while read line; do
-
- filename=`echo ${line} | cut -d'/' -f9 | cut -d'?' -f1`
-
- session_number=`echo $line | grep -o -E '\/([0-9]+|[0-9]+_.*)\.pdf' | grep -o -E "[0-9]{3,4}"`
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${session_number}" 1>/dev/null 2>&1`
- then
- dest_path="${WWDC_DIRNAME}/PDFs/${session_number} - ${title_array[$session_number]}.pdf"
- old_dest_path="${WWDC_DIRNAME}/PDFs/${filename}"
- if [ -f "${dest_path}" ];
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- elif [ -f "${old_dest_path}" ];
- then
- echo "Rename existing file: ${old_dest_path} => ${dest_path}"
- mv "${old_dest_path}" "${dest_path}"
- else
- echo "downloading PDF for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- else
- dest_path="${WWDC_DIRNAME}/PDFs/${session_number} - ${title_array[$session_number]}.pdf"
- old_dest_path="${WWDC_DIRNAME}/PDFs/${filename}"
-
- if [ -f "${dest_path}" ];
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- elif [ -f "${old_dest_path}" ];
- then
- echo "Rename existing file: ${old_dest_path} => ${dest_path}"
- mv "${old_dest_path}" "${dest_path}"
- else
- echo "downloading PDF for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- ((i+=1))
- done
-
- echo "******* DOWNLOADING ${FORMAT} VIDEOS ********"
-
- # Videos ${FORMAT}
- mkdir -p "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- #echo "All downloads will go to your Desktop/WWDC-2013 folder!"
- :
- else
- echo "Some download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download
- echo "Cleaning non fully downloaded files: OK"
- fi
-
-
- i=0
- # TODO: / WARNING (for possible future function merge): note that devstreaming url does use hard coded "wwdc" in it, were tech-talks function url is "techtalks" (whithout dash)
-
- if [ ${YEAR} = "2013" ];
- then
- REGEXFILE="[0-9a-zA-Z]*\/[0-9]{1,5}\/[0-9]{1,5}-${FORMAT}\.mov"
- elif [ ${YEAR} = "2014" ];
- then
- if [ "${FORMAT}" = "HD" ];
- then
- LC_FORMAT="hd"
- else
- LC_FORMAT="sd"
- fi
- REGEXFILE="[0-9a-zA-Z]*\/[0-9]{1,5}\/[0-9]{1,5}_${LC_FORMAT}_.*\.mov"
- else
- echo "coucou"
- fi
-
- cat ${TMP_DIR}/video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/wwdc\/'${YEAR}'/'${REGEXFILE}'\?dl=1+)"' | cut -d'"' -f2 | while read line; do
-
- #echo $line
- filename=`echo ${line} | cut -d'/' -f9 | cut -d'?' -f1`
-
- session_number=`echo $line | grep -o -i -E '/[0-9]+[_-]'${FORMAT}'[^/]*.mov' | grep -o -E '[0-9]+' | head -1`
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${session_number}" 1>/dev/null 2>&1`
- then
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$session_number]}-${FORMAT}.mov"
- old_dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${filename}"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- elif [ -f "${old_dest_path}" ];
- then
- echo "Rename existing file: ${old_dest_path} => ${dest_path}"
- mv "${old_dest_path}" "${dest_path}"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- else
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$session_number]}-${FORMAT}.mov"
- old_dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${filename}"
-
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- elif [ -f "${old_dest_path}" ];
- then
- echo "Rename existing file: ${old_dest_path} => ${dest_path}"
- mv "${old_dest_path}" "${dest_path}"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- ((i+=1))
- done
-
- rm -Rf ${TMP_DIR}
-}
-
-#**************************************************************************************#
-# TECH TALK #
-#**************************************************************************************#
-doGetTT2013 () {
-
- ituneslogin=$1
- itunespassword=$2
- FORMAT=$3
-
- if [ ${VERBOSE} == true ];
- then
- echo "Sessions to be downloaded: ${SESSION_WANTED}"
- echo "Output directory: ${WWDC_DIRNAME}"
- fi
-
- mkdir -p $TMP_DIR
- # Dynamically get the key value as this can change (it did change for instance when Apple had to turn down their developer Portal for a week)
- if [ ${VERBOSE} == true ];
- then
- echo "Getting appIDKey..."
- fi
- key=$(curl -s -L https://developer.apple.com/iphone | grep 'login?&appIdKey=' | sed -e 's/\(.*login?&appIdKey=\)\(.*\)\(&.*\)/\2/' | awk 'NR==1 {print $1}')
- if [ ${VERBOSE} == true ];
- then
- echo "appIDKey: ${key}"
- fi
- cookies=(--cookies=on --keep-session-cookies)
-
- action=$(curl -s 'https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/wa/login?appIdKey='"${key}" | grep '\ action=' | awk '{ print $4 }' | cut -f2 -d"=" | sed -e "s/^.*\"\(.*\)\".*$/\1/")
-
- curl -s --cookie-jar $TMP_DIR/cookies.txt "https://daw.apple.com${action}" -d theAccountName="${ituneslogin}" -d theAccountPW="${itunespassword}" > /dev/null
-
- curl -s --cookie $TMP_DIR/cookies.txt \
- --cookie-jar $TMP_DIR/cookies.txt \
- ${VIDEO_URL} > $TMP_DIR/video.html
-
- cat ${TMP_DIR}/video.html | sed -e '/class="thumbnail-title/,/
/!d' > $TMP_DIR/video-cleaned.html
-
- if [ -f ${TMP_DIR}/titles.txt ] ; then
- rm ${TMP_DIR}/titles.txt
- fi
- cat ${TMP_DIR}/video-cleaned.html | while read line; do
- echo $line | grep -o -E '
(.*)(.*)' | cut -d'>' -f2 | sed 's/\<\/li$//g' >> $TMP_DIR/titles.txt
- done
-
- while read line
- do
- title_array+=("$line")
- done < ${TMP_DIR}/titles.txt
-
-
- if [ ${LIST_MODE} == true ];
- then
- echo "Available videos:"
- echo "-----------------"
- cat ${TMP_DIR}/titles.txt | cut -d';' -f1 | while read line; do
- echo "$line: ${title_array[$line]}"
- #printf '%s\n' "${title_array[@]}"
- done;
- exit
- fi
-
-
- echo "******* DOWNLOADING PDF FILES ********"
-
- # PDF
- mkdir -p "${WWDC_DIRNAME}"/PDFs
-
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/PDFs/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- #echo "All downloads will go to your Desktop/WWDC-2013 folder!"
- :
- else
- echo "Some download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/PDFs/*.download
- echo "Cleaning non fully downloaded files: OK."
- fi
-
- i=0
- cat ${TMP_DIR}/video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/techtalks\/2013/[0-9a-zA-Z_\-]*\/[0-9a-zA-Z_\-]*\.pdf\?dl=1+)"' | cut -d'"' -f2 | while read line; do
- session_number=`echo $line | grep -o -E '/[0-9]+_' | grep -o -E [0-9]+`
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${session_number}" 1>/dev/null 2>&1`
- then
- dest_path="${WWDC_DIRNAME}/PDFs/${session_number} - ${title_array[$i]}.pdf"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading PDF for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- else
- dest_path="${WWDC_DIRNAME}/PDFs/${session_number} - ${title_array[$i]}.pdf"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading PDF for session ${session_number}: $line"
-
- curl $line > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- ((i+=1))
- done
-
- echo "******* DOWNLOADING ${FORMAT} VIDEOS ********"
-
- # Videos ${FORMAT}
- mkdir -p "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs
-
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- #echo "All downloads will go to your Desktop/WWDC-2013 folder!"
- :
- else
- echo "Some download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download
- echo "Cleaning non fully downloaded files: OK."
- fi
-
- i=0
- # TODO: This extra if then elif test should not be there (duplicated code), but I don't know so far how to use $FORMAT in the grep -o -E regex! :(
- # Word boundaries should help like \<$FORMAT\>, but I'm not sure this is compliant with all grep versions. And I don't want to use egrep (non standard).
- # I know even with if then, this can be improved in terms or number of code lines. But hey, I'm a Marketing guys. Sorry for the very quick and dirty bit :(((
- if [ ${FORMAT} = "HD" ];
- then
- cat ${TMP_DIR}/video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/techtalks\/2013/[0-9a-zA-Z_]*\/[0-9a-zA-Z_]*-hd\.mov\?dl=1+)"' | cut -d'"' -f2 | while read line; do
- session_number=`echo $line | grep -o -E '/[0-9]+_' | grep -o -E [0-9]+`
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${session_number}" 1>/dev/null 2>&1`
- then
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$i]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- # little trick to be consistant with upercase HD of wwdc file name types
- lineWithUperCaseHD="${line/-HD/-hd}"
- curl $lineWithUperCaseHD > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- else
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$i]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- # little trick to be consistant with upercase HD of wwdc file name types
- lineWithUperCaseHD="${line/-HD/-hd}"
- curl $lineWithUperCaseHD > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- ((i+=1))
- done
- elif [ ${FORMAT} = "SD" ];
- then
- cat ${TMP_DIR}/video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/techtalks\/2013/[0-9a-zA-Z_]*\/[0-9a-zA-Z_]*-sd\.mov\?dl=1+)"' | cut -d'"' -f2 | while read line; do
- session_number=`echo $line | grep -o -E '/[0-9]+_' | grep -o -E [0-9]+`
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${session_number}" 1>/dev/null 2>&1`
- then
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$i]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- # little trick to be consistant with upercase SD of wwdc file name types
- lineWithUperCaseSD="${line/-SD/-sd}"
- curl $lineWithUperCaseSD > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- else
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${session_number} - ${title_array[$i]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${session_number}: $line"
-
- # little trick to be consistant with upercase SD of wwdc file name types
- lineWithUperCaseSD="${line/-SD/-sd}"
- curl $lineWithUperCaseSD > "${dest_path}.download"
-
- mv "${dest_path}.download" "${dest_path}"
- fi
- fi
- ((i+=1))
- done
- fi
-
- rm -Rf ${TMP_DIR}
-}
-
-
-
-doGet2012 () {
- ituneslogin=$1
- itunespassword=$2
- FORMAT=$3
- #echo "DEBUG: do 2012 (login=${ituneslogin} - password=${itunespassword} - format=${FORMAT})"
- TMP_DIR="/tmp/wwdc2012.tmp"
- mkdir -p $TMP_DIR
-
- echo ""
- echo "======> SORRY: 2012 VIDEO DOWNLOAD NOT YET IMPLEMENTED! <======="
- echo ""
-
- rm -Rf ${TMP_DIR}
-}
-
-
-#**************************************************************************************#
-# WWDC 2015 #
-#**************************************************************************************#
-doGetWWDC2015 () {
- ituneslogin=$1
- itunespassword=$2
- FORMAT=$3
-
- if [ ${VERBOSE} == true ];
- then
- echo "Sessions to be downloaded: ${SESSION_WANTED}"
- echo "Output directory: ${WWDC_DIRNAME}"
- fi
-
- mkdir -p $TMP_DIR
-
- # Processing Authentifcation - depreciated now (but kept for copy/pasters like me that might need to use this as a snippet for other uses)
- if [ -z "${ituneslogin}" ];
- then
- # Dynamically get the key value as this can change (it did change for instance when Apple had to turn down their developer Portal for a week)
- if [ ${VERBOSE} == true ];
- then
- echo "Getting appIDKey..."
- fi
- key=$(curl -s -L https://developer.apple.com/iphone | grep 'login?&appIdKey=' | sed -e 's/\(.*login?&appIdKey=\)\(.*\)\(&.*\)/\2/' | awk 'NR==1 {print $1}')
- if [ ${VERBOSE} == true ];
- then
- echo "appIDKey: ${key}"
- fi
- cookies=(--cookies=on --keep-session-cookies)
-
- action=$(curl -s 'https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/wa/login?appIdKey='"${key}" | grep '\ action=' | awk '{ print $4 }' | cut -f2 -d"=" | sed -e "s/^.*\"\(.*\)\".*$/\1/")
-
- curl -s --cookie-jar $TMP_DIR/cookies.txt "https://daw.apple.com${action}" -d theAccountName="${ituneslogin}" -d theAccountPW="${itunespassword}" > /dev/null
-
- curl -s --cookie $TMP_DIR/cookies.txt \
- --cookie-jar $TMP_DIR/cookies.txt \
- ${VIDEO_URL} > $TMP_DIR/video.html
- else
- curl -silent ${VIDEO_URL} > $TMP_DIR/video.html
- fi
-
- cat ${TMP_DIR}/video.html | sed -e '/class="inner_v_section"/,/<\/section>/!d' > $TMP_DIR/video-cleaned.html
-
- if [ -f ${TMP_DIR}/titles.txt ] ; then
- rm ${TMP_DIR}/titles.txt
- fi
- cat ${TMP_DIR}/video-cleaned.html | while read line; do
- # domain if for future use ...
- #domain=`echo $line | grep -o -E '
(.*)
' | cut -d'<' -f2 | cut -d'>' -f2`
- sessionNum=`echo $line | grep -o -E '
' | cut -d'=' -f3 | cut -d'"' -f1`
- title_array[$sessionNum]=`echo $line | grep -o -E '' | cut -d'>' -f2 | cut -d'<' -f1`
- echo "$sessionNum;${title_array[$sessionNum]}" >> $TMP_DIR/titles.txt
- done
-
- #`sed -n '/^,/!p' $TMP_DIR/titles.txt > $TMP_DIR/titles.txt.tmp && mv $TMP_DIR/titles.txt.tmp $TMP_DIR/titles.txt`
- `sed '/^;/d' $TMP_DIR/titles.txt > $TMP_DIR/titles.txt.tmp && mv $TMP_DIR/titles.txt.tmp $TMP_DIR/titles.txt`
-
- # escape special char for downloading issues (ex: I/O string)
- # Ok this is dirty, but quick ! ;)
- mv ${TMP_DIR}/titles.txt ${TMP_DIR}/titles-to-be-escaped.txt
- sed -e 's/\//\-/g' ${TMP_DIR}/titles-to-be-escaped.txt > ${TMP_DIR}/titles.txt
- mv ${TMP_DIR}/titles.txt ${TMP_DIR}/titles-to-be-escaped.txt
- sed -e 's/&/AND/g' ${TMP_DIR}/titles-to-be-escaped.txt > ${TMP_DIR}/titles.txt
-
- while read line
- do
- sessionNum=`echo $line | cut -d';' -f1`
- sessionTitle=`echo $line | cut -d';' -f2`
- title_array[$sessionNum]=${sessionTitle}
- done < ${TMP_DIR}/titles.txt
-
-
-
- if [ ${LIST_MODE} == true ];
- then
- echo "Available videos:"
- echo "-----------------"
- cat ${TMP_DIR}/titles.txt | cut -d';' -f1 | while read line; do
- echo "$line: ${title_array[$line]}"
- #printf '%s\n' "${title_array[@]}"
- done;
- exit
- fi
-
- echo "******* DOWNLOADING ${FORMAT} VIDEOS ********"
-
- # Videos ${FORMAT}
- mkdir -p "${WWDC_DIRNAME}/${FORMAT}-VIDEOs"
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- #echo "All downloads will go to your Desktop/WWDC-2013 folder!"
- :
- else
- echo "Some download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/${FORMAT}-VIDEOs/*.download
- echo "Cleaning non fully downloaded files: OK"
- fi
-
-
- # Prepare for SAMPLE-CODE
- mkdir -p "${WWDC_DIRNAME}/SAMPLE-CODE"
- # do the rm *.download only if files exist
- FILES_LIST="$(ls "${WWDC_DIRNAME}"/SAMPLE-CODE/*.download 2>/dev/null)"
- if [ -z "$FILES_LIST" ]; then
- #echo "Hope you like my code? I know there are lot's of improvment I could make. In particular split in functions ..."
- :
- else
- echo "Some sample code files download was aborted last time you ran this script."
- rm "${WWDC_DIRNAME}"/SAMPLE-CODE/*.download
- echo "Cleaning non fully downloaded sample code zip files: OK"
- fi
-
-
-
- i=0
- # TODO: / WARNING (for possible future function merge): note that devstreaming url does use hard coded "wwdc" in it, were tech-talks function url is "techtalks" (whithout dash)
-
- if [ "${FORMAT}" = "HD" ];
- then
- LC_FORMAT="hd"
- else
- LC_FORMAT="sd"
- fi
- REGEXFILE="[0-9a-zA-Z]*\/[0-9]{1,5}\/[0-9]{1,5}_${LC_FORMAT}_.*\.mp4"
-
- # get individuals video pages
- cat ${TMP_DIR}/titles.txt | cut -d';' -f1 | while read line; do
- curl -silent "${VIDEO_URL}?id=$line" > "${TMP_DIR}/$line-video.html";
- videoURL=`cat ${TMP_DIR}/$line-video.html | grep -o -E 'href="(http:\/\/devstreaming.apple.com\/videos\/wwdc\/'${YEAR}'/'${REGEXFILE}'\?dl=1+)"'| cut -d'"' -f2`
- #echo ${line}: ${videoURL}
-
- # Get sample codes
- cat ${TMP_DIR}/$line-video.html | grep -o -E '(class="sample-code"|class="playground")(.*)' | cut -d'"' -f4 > "${TMP_DIR}/${line}-sampleCodeURL.txt"
- cat ${TMP_DIR}/$line-video.html | grep -o -E '(class="sample-code"|class="playground")(.*)' | cut -d'>' -f3 | cut -d'<' -f1 > "${TMP_DIR}/${line}-sampleCodeName.txt"
- paste -d';' "${TMP_DIR}/${line}-sampleCodeName.txt" "${TMP_DIR}/${line}-sampleCodeURL.txt" > "${TMP_DIR}/${line}-sampleCode.txt"
-
- # escape special char for downloading issues (ex: I/O string)
- # Ok this is dirty, but it need to be quick ! ;)
- mv ${TMP_DIR}/${line}-sampleCode.txt ${TMP_DIR}/${line}-sampleCode-to-be-escaped.txt
- sed -e 's/I\/O/I\-O/g' ${TMP_DIR}/${line}-sampleCode-to-be-escaped.txt > ${TMP_DIR}/${line}-sampleCode.txt
- mv ${TMP_DIR}/${line}-sampleCode.txt ${TMP_DIR}/${line}-sampleCode-to-be-escaped.txt
- sed -e 's/&/AND/g' ${TMP_DIR}/${line}-sampleCode-to-be-escaped.txt > ${TMP_DIR}/${line}-sampleCode.txt
-
-
- sampleCodeURL=()
- sampleCodeName=()
- nb_lines=0
- while read lineURL; do
- sampleCodePATHOnLine=`echo ${lineURL} | cut -d';' -f2`
- sampleCodeNameOnLine=`echo ${lineURL} | cut -d';' -f1`
- replacement=" -"
- sampleCodeNameOnLine="${sampleCodeNameOnLine/:/${replacement}}"
- if [[ ! ${lineURL} =~ \.zip$ ]];
- then
- curl -silent -L "${SAMPLE_CODE_ROOT_URL}/${sampleCodePATHOnLine}/book.json" > "${TMP_DIR}/$line-book.json";
- sampleCodeURL[nb_lines]=`cat "${TMP_DIR}/$line-book.json" | grep -o -E '"sampleCode":".*\.zip"' | cut -d'"' -f4`
- sampleCodeName[nb_lines]=${sampleCodeNameOnLine}
- sampleCodePATH=${sampleCodePATHOnLine}
- #echo " (${nb_lines})${sampleCodeName[nb_lines]}: ${SAMPLE_CODE_ROOT_URL}/${sampleCodePATHOnLine}/${sampleCodeURL[nb_lines]}"
- else
- sampleCodeURL[nb_lines]=${sampleCodePATHOnLine}
- #sampleCodeName[nb_lines]=${lineURL%.*}
- sampleCodeName[nb_lines]=${sampleCodeNameOnLine}
- sampleCodePATH=${sampleCodeURL[nb_lines]}
- #echo "==> Direct zip: ${sampleCodeName[nb_lines]}: ${SAMPLE_CODE_ROOT_URL}/${sampleCodeURL[nb_lines]}/${sampleCodeURL[nb_lines]}"
- fi
- ((nb_lines+=1))
- done < "${TMP_DIR}/${line}-sampleCode.txt"
-
- if [ ${SELECTIVE_SESSION_MODE} == true ];
- then
- if `echo ${SESSION_WANTED} | grep "${line}" 1>/dev/null 2>&1`
- then
- # downloading video files
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${line} - ${title_array[$line]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${line}: ${title_array[$line]}"
- curl "${videoURL}" > "${dest_path}.download"
- mv "${dest_path}.download" "${dest_path}"
- fi
-
- # downloading sample codes files
- for i in "${!sampleCodeURL[@]}"; do
- #if [ -n "${sampleCodeURL[$i]}" ]; then
- dest_path="${WWDC_DIRNAME}/SAMPLE-CODE/${line} - ${sampleCodeName[$i]}.zip"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading sample code for session ${line}: ${sampleCodeName[$i]}"
- echo "${SAMPLE_CODE_ROOT_URL}/${sampleCodePATH}/${sampleCodeURL[$i]}"
- curl -L "${SAMPLE_CODE_ROOT_URL}/${sampleCodePATH}/${sampleCodeURL[$i]}" > "${dest_path}.download"
- mv "${dest_path}.download" "${dest_path}"
- fi
- #fi
- done
- fi
- else
- dest_path="${WWDC_DIRNAME}/${FORMAT}-VIDEOs/${line} - ${title_array[$line]}-${FORMAT}.mov"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading ${FORMAT} Video for session ${line}: ${title_array[$line]}"
- curl -L "${videoURL}" > "${dest_path}.download"
- mv "${dest_path}.download" "${dest_path}"
- fi
-
- # downloading sample codes files
- for i in "${!sampleCodeURL[@]}"; do
- #if [ -n "${sampleCodeName[$i]}" ]; then
- dest_path="${WWDC_DIRNAME}/SAMPLE-CODE/${line} - ${sampleCodeName[$i]}.zip"
- if [ -f "${dest_path}" ]
- then
- echo "${dest_path} already downloaded (nothing to do!)"
- else
- echo "downloading sample code for session ${line}: ${sampleCodeName[$i]}"
- curl -L "${SAMPLE_CODE_ROOT_URL}/${sampleCodePATH}/${sampleCodeURL[$i]}" > "${dest_path}.download"
- mv "${dest_path}.download" "${dest_path}"
- fi
- #fi
- done
- fi
- ((i+=1))
-
- done;
-
- rm -Rf ${TMP_DIR}
-}
-
-checkNetwork () {
- curl -silent -D- -o /dev/null -s http://www.google.com 1>/dev/null 2>&1
- if [[ $? == 0 ]]; then
- :
- #echo "there is netxork"
- else
- echo "No network connexion! Man, you're here for a long walk!"
- exit 1
- fi
-}
-
-##########################################################################################
-####### MAIN ##########
-##########################################################################################
-
-#if [ $# -eq "0" ]
-#then
-# echo "WWDC videos and PDFs downloader (version ${VERSION})" >&2
-# echo "Usage: `basename $0` [options]
"
-# echo "Please use -h for more options"
-# exit 1
-#fi
-
-ituneslogin=${@: -1}
-FORMAT=${DEFAULT_FORMAT}
-YEAR=${DEFAULT_YEAR}
-EVENT=${DEFAULT_EVENT}
-
-while getopts ":hl:y:f:s:vLo:e:" opt; do
- case $opt in
- h)
- echo "WWDC Videos and PDFs downloader (version ${VERSION})" >&2
- echo "Author: Olivier HO-A-CHUCK (http://blog.hoachuck.biz)"
- echo ""
- echo "Usage: `basename $0` [options]"
- echo "Try -L option for list of available videos"
- echo ""
- echo "Options:"
- echo " -y : select year (ex: -y 2013). Default year is 2015" >&2
- echo " Possible values for year: 2013, 2014 and 2014" >&2
- echo " For info: year 2012 videos download is not yet available - to be honest, I'm too lazy to do it!" >&2
- echo " -e : select event type between \"wwdc\" and \"tech-talks\"" >&2
- echo " default value is \"wwdc\"" >&2
- echo " -f : select video format type (SD or HD). Default video format is SD" >&2
- echo " -s : select which sessions you want to download (try -L option for list of avialable videos)" >&2
- echo " -v : verbose mode" >&2
- echo " -o