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

אתר גלי צה"ל הוא אתר עשיר בתכנים משידורי התחנה (ובנוי קצת עקום). לכאורה זהו פתרון מצוין עבור כל בעלי נגני ה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.

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

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

16 מחשבות על “הקלטת תוכניות מאתר גל"צ

  1. שי says:

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

  2. שי says:

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

    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-).

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

  3. חתול says:

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

  4. אריאל says:

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

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

  5. שי says:

    באמת לא שמתי לב לחוסר האחידות הזה; אפשר לטפל בו בעזרת עוד דגלים. גם צריך דגלים נוספים בגלל שבחלק מהקישורים לעמודים הם הולכים ל־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.

  6. ענת ברזילי says:

    וואי איזה יופי לא ידעתי שאפשר לעשות דברים כאלה יש באמת אחלה דברים בגלצ ואני לא מוצאת את עצמי יושבת ושומעת אז אם תיהיה איזה הופעה טובה שוב או משהו אני עכשיו יודעת מה לעשות!

    תודה רבה 🙂
    ענת

  7. גלטזזז says:

    הדרך להוריד תוכניות מאתר גל"צ באמצעות פלאשגט:
    הקלק על הלינק להאזנה באמצעות מקש העכבר הימני ובחר ב"העתק קיצור דרך" (לחילופין, הקלק במרכז חלון ההאזנה ובחר ב"מאפיינים" והלינק יופיע שם), הדבק את הלינק בתוכנת ההורדה FlashGet אבל! בטרם תאשר את תחילת ההורדה – שנה את תחילת הלינק כך שבמקום http יהיה mms

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *