UPDATE 8/4/2010: Attenzione con qualche barbatrucco sono riuscito a ripristinare lo scarico dei Condensed in formato MP4 ad alta risoluzione
Al momento e' quindi nuovamente possibile scaricarli su Windows... per Linux e' ancora work in progress (vi risparmio i dettagli tecnici, PM per altre info).
FYI: qualcuno dei colleghi di forum ha segnalato un generale decadimento nella qualita' sostanziale dei Condensed (azioni tagliate, non tutti gli AB, H non incluse ecc).
Cerchero' di mantenere aggiornato questo post con le ultime versioni funzionanti per Linux/Unix o Windows.
UPDATE 6/4/2010: Attenzione il sito dell'MLB ha subito qualche ritocco cosmetico e non solo!!!
I vecchi Condensed in formato MP4 ad alta risoluzione non sono piu' scaricabili perche' trasferiti in tecnologia Streaming Video.
L'unico formato al momento disponibile e' 3GP in risoluzione 320x240 e bitrate video ~550kbps
Ricordo che per visualizzare i 3gp sul pc bastano player anche free (tipo VLC o mpui-hcb) mentre i piu' recenti smartphone (Nokia in primis) dovrebbero essere in grado nativamente di supportare i 3gp.
Buongiorno a tutti ...
a voi un piccolo script shell Linux (o dialetti affini) per scaricare automaticamente e gratis tutti i Condensed Games di una determinata data dal sito dell'MLB.
Per Windows guardate a fondo post.
Creare o individuare una directory su Linux in cui mettere tutto, io avevo /shares/internal/PUBLIC/Baseball/MLB_Condensed_Videos che e' condivisa come disco di rete e riesco a vederla da tutti i PC su cui lavoro. (Non spieghero' ora come condividerla ... per semplificare)
Code: Select all
# mkdir /shares
# mkdir /shares/internal
# mkdir /shares/internal/PUBLIC
# mkdir /shares/internal/PUBLIC/Baseball
# mkdir /shares/internal/PUBLIC/Baseball/MLB_Condensed_Videos
Code: Select all
#!/bin/sh
cd /home/PUBLIC/Baseball/MLB_Condensed_Videos
if [ $# -lt 1 ] ; then
dt=`TZ=EST+24 date +%Y%m%d`
else
dt=$1
fi
echo "Downloading condensed for : $dt" > /tmp/_t.log
(
cat <<'---EOAWK---'
BEGIN {
FS="</td>"
vidscount=0
}
/<td class="mmg_time">.*<\/td>$/ {
gsub(/<td class="mmg_time">/, "", $1)
gsub(/<td class="mmg_matchup">/, "", $2)
gsub(/<td class="mmg_condensed">/, "", $11)
gsub(/<a href="/, "http://www.mlb.com/", $11)
gsub(/"><span class="display_text">Watch<\/span><\/a>/, "", $11)
if ( $11 == "" ) next
if ( match($2,/Yankees/) || match($2,/Red Sox/) ) ; else next
system("wget -a /tmp/_t.log -O /tmp/_t1.tmp " $11)
system("grep \"<!-- metafile:.*-->\" /tmp/_t1.tmp > /tmp/_t2.tmp")
getline xmlurl < "/tmp/_t2.tmp"
close("/tmp/_t2.tmp")
gsub(/<!-- metafile: /, "http://www.mlb.com", xmlurl)
gsub(/ -->/, "", xmlurl)
system("wget -a /tmp/_t.log -O /tmp/_t3.tmp " xmlurl)
getline xml < "/tmp/_t3.tmp"
close("/tmp/_t3.tmp")
game[vidscount] = $2
match(xml, "id=\"[0-9]+\"")
vid[vidscount] = substr(xml,RSTART+4,RLENGTH-5)
# match(xml, "<url playback_scenario=\"3GP_H264_550K_320X240\".*</url>")
match(xml, "<url playback_scenario=\"FLASH_1000K_640X360\".*</url>")
split(substr(xml,RSTART,RLENGTH), splt, "[<>]")
vidurls[vidscount] = splt[3]
print vidurls[vidscount] >> "/tmp/_t.log"
match(xml, "<keyword type=\"event_date\" value=\".*\"")
split(substr(xml,RSTART+34,RLENGTH-1), splt, "[-T:]")
# wgetfile[vidscount] = "wget -c -a /tmp/_t.log -O \"" splt[1] splt[2] splt[3] splt[4] splt[5] " " $2 " (#" vid[vidscount] ").3gp\" " vidurls[vidscount]
wgetfile[vidscount] = "rtmpdump -q -o \"" splt[1] splt[2] splt[3] splt[4] splt[5] " " $2 " (#" vid[vidscount] ").flv\" -r " vidurls[vidscount]
vidscount=vidscount+1
}
END {
for (x = 0; x < vidscount; x++) {
print "Game: " game[x] >> "/tmp/_t.log"
if (system(wgetfile[x]) != 0)
system("logger -t ERROR MLB '" game[x] " " wgetfile[x] "'")
else
system("logger -t OK MLB '" game[x] " " wgetfile[x] "'")
}
}
function rsleep(s)
{
slpcmd = "sleep " int(s * rand())
system(slpcmd)
}
---EOAWK---
) > /tmp/_t0.awk
wget -a /tmp/_t.log -O /tmp/_t0.tmp http://mlb.mlb.com/mediacenter/index.jsp?ymd=$dt
awk -f /tmp/_t0.awk /tmp/_t0.tmp
rm /tmp/_t0.awk /tmp/_t[0123].tmp
Code: Select all
# chmod 755 getcondensed.sh
Code: Select all
# ./getcondensed.sh 20090623
A me funziona ... non so quanto durera' pero'!!!
Ovviamente si puo' personalizzare a piacere con qualche altra martellata per renderlo selettivo su alcune squadre e per pianificarlo in automatico una volta al di'...
ENJOY!!!
Per Windows scaricate questo ZIP (copiate il link nel browser):
Code: Select all
http://uploading.com/files/879f56c1/condensed_20100922.zip/
password=playitusa
Lanciate getcondensed.bat con la data come parametro con questo formato YYYYMMDD cosi':
Code: Select all
C:\DIRECTORY> getcondensed.bat 20090623
Per non scaricarsi tutti i Condensed Games della data indicata ma solo alcune squadre:
1a) Se su DOS/WINDOWS, aprire con notepad il file getcondensed.awk
1b) Se su UNIX/LINUX, aprire con vi il file getcondensed.sh
2) Cercare questa riga:
Code: Select all
if ( $11 == "" ) next
Se ti interessa una sola squadra, aggiungi la seguente linea dopo la riga trovata:
Code: Select all
if ( match($2,/Yankees/) ) ; else next
Code: Select all
if ( match($2,/Yankees/) || match($2,/Red Sox/) ) ; else next
Se ti interessano tre o piu' squadre, aggiungi la seguente linea dopo la riga trovata secondo il modello e cosi' via per ulteriori squadre:
Code: Select all
if ( match($2,/Yankees/) || match($2,/Red Sox/) || match($2,/Tigers/) ) ; else next
Code: Select all
# if ( match($2,/Yankees/) || match($2,/Red Sox/) ) ; else next
5) Rilanciare come al solito il comando
In caso di PROBLEMI con la versione Windows:
In caso di problemi per aumentare il livello di "loquacita'" del "barbatrucco" modificate il file "getcondensed.bat" cosi':
e rilanciate ... dovrebbero comparirvi molte piu' info
In caso di persistenza degli errori o altro postate qui l'output del comando "getcondensed.bat" e i due file "_t3.tmp" "_t.log"
Have Fun!!!