הקלטת תוכניות מאתר גל"צ

אתר גלי צה"ל הוא אתר עשיר בתכנים משידורי התחנה (ובנוי קצת עקום). לכאורה זהו פתרון מצוין עבור כל בעלי נגני הmp3 למיניהם אך מתברר שלא. האתר מאפשר האזנה דרכו בלבד ולא מאפשר להוריד את התוכניות למחשב ולנגן.

מכיון שיש לי עוד כמה משימות בחיי מלבד לשבת ליד המחשב ולהאזין לתכניות גלי צה"ל, חיפשתי דרך להוריד אותן למחשב. נתנאל היה נחמד וכתב סקריפט ב־bash שמקליט את כל התוכניות מעמוד נבחר. עבדנו עליו עוד קצת (בעיקר הוא, אני קצת בדקתי בגוגל כדי להבין משהו ב־bash) כדי שיהיה נוח והנה הוא לתועלת הציבור.

שימו לב שיש צורך בהתקנת החבילה mplayer (להתקנה באובונטו) ובתלויות שלה כדי להפעילו.

#!/bin/bash
if [ "$1" == "" ] && [ ! -e res ]; then
    echo "Enter url:"
    read url
else
    url=$1
fi

if [ ! -e res ]; then
    wget $url -O html
    cat html | grep -o "http.*wma" > res
    rm html
fi
for x in $(cat res)
do
    NAME=$(echo $x | cut -d '/' -f6)   
    mplayer -dumpstream $x -dumpfile $NAME
echo "$x" >> res2
    sed -i 1d res

done

rm res

ניתן גם להורידו מכאן.

הסקריפט מקבל את כתובת העמוד כפרמטר או כקלט, ניגש לעמוד ואוסף ממנו את כל קישורי התוכניות ואז עובר עליהן ומקליט אותן. כתובות של תוכניות שהוקלטו כבר נשמרות בקובץ res2.

יש למקם את הקובץ מתיקיה שאליה אתם רוצים שירדו כל פרקי התכנית הנבחרת, לתת לו הרשאות ריצה ולהריץ אותו. ניתן גם להפסיק את הפעולה שלו באמצע ולאחר מכן להמשיך מהמקום שהוא הופסק.

כרגיל, בשביל מחמאות, טענות, דיווחי באגים ושוקולדים יש את התגובות כאן למטה.

נהנת מהפוסט? אתה מוזמן להרשם לעידכוני RSS.

 

12 תגובות

אתה יכול לעקוב אחרי התגובות לפוסט הזה באמצעות RSS.

אתה יכול להגיב או לשלוח טראקבק מהאתר שלך.

  1. מאת אבי אברהם Windows XP Mozilla Firefox 3.5.7 :

    ישנה קהילה מאוד פעילה שמקליטה חלק מהתוכניות שלא ניתן לשמוע דרך האתר של גל"צ ושם ניתן גם להוריד את הקבצים למחשב
    http://i.start.co.il/groups/glz/forum/t/1878.aspx

  2. מאת חתול Linux Mozilla Firefox 3.5.7 :

    @אבי אברהם: תודה רבה על הקישור, לא הכרתי את האתר. אני מוסיף את התכניות שם להורדות שלי.

  3. מאת שי Debian GNU/Linux Mozilla Firefox 3.5.6 :

    נראה מצוין, תודה רבה. למרבה הצער, עבור התכנית שאני הכי מעוניין בה, "שעה היסטורית", זה לא עובד (במובן "להוריד את כל הפרקים"), כי הם מקדישים עמוד נפרד לכל פרק. יותר מאוחר אני אמצא איך לסדר את זה (אני חושב שכל מה שצריך זה כמה אופציות של wget, שיגידו לו "תוריד רקורסיבית, רמה אחת, עמודים עם שם מצורה כך-וכך, והכל לתוך קובץ אחד ארוך").

  4. מאת חתול Linux Mozilla Firefox 3.5.7 :

    @שי: שעה היסטורית לא זמין להאזנה באתר גל"צ. הם מוכרים את התכנית על קלטות.
    אפשר להוריד את התכנית מהקישור שאבי הביא בתגובה למעלה.

  5. מאת שי Debian GNU/Linux Mozilla Firefox 3.5.6 :

    @חתול: בעמוד שקישרת אליו, יש קישור ל"עוד בשעה היסטורית", שמוביל לעמוד
    http://glz.co.il/newsArticle.aspx?newsid=55068

    שמלא קישורים לעמודים שמכל אחד מהם אפשר להוריד פרק. מבחינת הפורום, התכנית היא "תכנית עבר\בחופשה", ויש שם רק מספר פרקים מהעבר.

  6. מאת חתול Linux Mozilla Firefox 3.5.7 :

    @שי: וואוו, איך אמורים למצוא את הקישור הזה?
    כתבתי סקריפט שיעבוד על שעה היסטורית ותכניות דומות שלא מקשרות ישירות לקבצים (למשל "חיים של אחרים"). אני אפרסם אותו בהקדם.

  7. מאת שי Debian GNU/Linux Mozilla Firefox 3.5.6 :

    טוב, כמו שחשבתי: אם נחליף בסקריפט המקורי את הפקודה

    wget $url -O html

    בפקודות

    wget $url -O newsArticle.aspx -r --level=1 -A'newsArticle.aspx'
    mv newsArticle.aspx html

    זה אמור להספיק.

    (החלפת השם בפקודה wget מ־html ל־newsArticle.aspx נובעת מזה ש־wget מחייבת גם את הקבצים שנשמרו לעמוד במגבלות שנקבעו ע"י A-).

    מצד שני, בתכנית הספציפית הזאת זמינים רק הפרקים שמאז נובמבר. הפרקים הישנים יותר, אכן, זמינים כנראה רק דרך הפורום או הקלטות.

  8. מאת שי Debian GNU/Linux Mozilla Firefox 3.5.6 :

    אה, וצריך להחליף את השורה

    $x >> res2

    במשהו יותר נכון

    echo "$x" >> res2

  9. מאת חתול Linux Mozilla Firefox 3.5.7 :

    @שי: הצלחתי לכתוב סקריפט שיעשה את זה אבל הפתרון שלך הרבה יותר פשוט. רק שים לב שכתיב לא אחיד בגל"צ, לפעמים הוא newsArticle ולפעמים NewsArticle.
    השאלה עכשיו היא כיצד ניתן לשלב את זה לתוך הסקריפט המקורי.
    ותודה על התיקון. לצערי הידע שלי בbash הוא לא גדול. מה ההבדל?

  10. מאת אריאל Windows XP Mozilla Firefox 3.5.7 :

    איזה יופי! אני הולך להשתמש בסקריפט הזה די הרבה. וגם התוכניות שאנשים קישרו אליהן נשמעות מאוד מעניינות.

    חבל רק שצריך את כל הסקריפטים האלה ושגלי צה"ל לא מאפשרים הורדה ישירה של התוכניות.

  11. מאת שי Debian GNU/Linux Mozilla Firefox 3.5.6 :

    באמת לא שמתי לב לחוסר האחידות הזה; אפשר לטפל בו בעזרת עוד דגלים. גם צריך דגלים נוספים בגלל שבחלק מהקישורים לעמודים הם הולכים ל־glz.co.il ובחלק ל־www.glz.co.il. הפקודה המלאה אצלי עכשיו היא

    wget $url -O newsArticle.aspx -r --level=1 -A'newsArticle.aspx' -H -Dglz.co.il --ignore-case

    הדגלים החדשים, מלבד ignore-case (שלא בדקתי) הם:

    H: מרשה ללכת לשרתים אחרים…
    Dglz.co.il: …אבל רק תחת שם המתחם של גל"צ

    כמו שאמרתי, מה שצריך הוא פשוט להחליף את פקודת ה־wget בסקריפט המקורי בפקודת ה־wget שלי, ואז לשנות את שם הקובץ ל־"html" (זו פקודת ה־mv).

    לגבי התיקון: השורה המקורית מנסה לבצע את כתובת הקובץ כאילו היא פקודה, ולשלוח את הפלט לקובץ res2. אצלי, לפחות, זה תמיד נכשל והקובץ res2 נשאר ריק. הפקודה שכתבתי במקומה מדפיסה את כתובת קובץ הצליל לתוך res2.

  12. [...] שמתי לב שהסקריפט להורדת תכניות מגל"צ נכשל במשימתו פעמים רבות. גם ניסיון להאזין ישירות [...]

השאר תגובה