הורדה מאתר jewishmusic
-
אני משתמש בכרום גירסא 80, אולי זה קשור, בכל מקרה אפשר לכתוב תוכנה שמורידה, זה לא יעבוד עם IDM, בגלל שהוא סתם עושה GET ואין אפשרות לערוך את הHEADERים שלו,
מה שjewishmusic עושים זה לשלוח HEADER של RANGE, והוא מביא את הקובץ עד הRANGE הזה, אח"כ הוא מבקש את הRANGE שאחרי, ואם מנסים לבקש בלי RANGE אז מקבלים שגיאה 404.זה הקוד שלהם לקבל את הRANGE, אני לא בטוח מה יש בSTORE, אבל כנראה זה אובייקט שמכיל את מה שכבר ירד
addEventListener('fetch', (() => { let store = {ts: 0}; const update = (resp) => { try { let mp3sec = JSON.parse(atob(resp.headers.get('X-Set-MP3Sec'))); if (mp3sec.ts > store.ts) { store = mp3sec } } catch(err) {} }; const requestdata = async (request) => { let headers = new Headers(request.headers); headers.set('X-MP3Sec', btoa(JSON.stringify(store))); let url = new URL('/jmusic/mp3sec/stream', request.url); url.protocol = 'https'; url.searchParams.set('loc', new URL(request.url).pathname); return await fetch(url, { ...request, headers }); }; return event => { if (event.request.url.match(/\.mp3$/i)) { event.respondWith((async () => { try { let resp = await requestdata(event.request); if (resp.status == 400 || resp.status == 404) { update(resp); resp = await requestdata(event.request); } update(resp); return resp; } catch(err) { console.error(err); } })()); } }; })());
-
זה מה שיש להם בSTORE
{"ts":1590429116337,"id":"mp3sec_16939339745ecc05a8c95666.20216347"}
הם משתמשים במידע הזה בתור HEADER כדי לתת TIMEOUT לREQUEST, שאחרי זה כבר אי אפשר לפנות אליה משום שמקבלים
""
אז אמנם זה קצת יותר מסובך, אבל אפשר לעקוב אחרי הקוד לראות איך הם מייצרים את הID
הTS זה בפשטות TIMESTAMP של מילישניות מEPOCH או משהו כזה.. צריך לעקוב אחרי הקוד שלהם, אבל זה נראה מעניין. -
@klopkk
הייתי מסביר יותר בעברית, אבל זה מאוד מסובך..
במילים הכי פשוטות - הם שומרים את "שעת ההורדה" בשביל לחשב האם השעה שלהם מתאימה לשעה הנוכחית, במידה וכן הם מורידים חלק מהשיר ולא את כולו, אחרי שהוא מסיים להוריד חלק מהשיר, הוא משווה שוב את השעה ומעדכן אותה לפי השעה הנוכחית.. בצורה הזו בקשת הורדה שלא לפי השעה שלהם פשוט תידחה, כמו כן הם לא מורידים הכל בפעם אחת כדי שלא תוכל לשחזר את הצורה בה הדפדפן לוקח את השיר, כי אחרי כמה מגה בייט זה פשוט יבטל את ההורדה.הם גם שומרים ID שנועד לאבטח את הבקשה, אני מנסה להבין איפה הקוד שהם מייצרים אותו כי חייבים להוסיף אותו לבקשה לקבל את הקובץ של השיר.
-
@Wild אמר בהורדה מאתר jewishmusic:
בכל מקרה אפשר לכתוב תוכנה שמורידה
באמת יש מישהו שכתב לזה תוכנה (קרוב לודאי שהוא לא רוצה פרסום שמו).
-
@אברך-מייבין
גם אם הייתי כותב תוכנה, לא הייתי מפרסם אותה, סוף סוף האתר הזה הוקם במטרה למכור מוזיקה, אני בטוח שגם לרבנים שמתירים להוריד שירים, הם יגידו לך שאם מקפידים עליך זה לא "חלק" -
@אברך-מייבין
יש כול מיני תוכנות שיודעות להקליט ישירות דרך כרטיס הקול
כלומר, אתה מנגן את הקובץ ישירות מהאתר ומקליט דרך התוכנה שעושה שימוש בהתקן ההקלטה של כרטיס הקול במחשב.
Cam Studio -
@clickcom אמר בהורדה מאתר jewishmusic:
@אברך-מייבין
יש כול מיני תוכנות שיודעות להקליט ישירות דרך כרטיס הקול
כלומר, אתה מנגן את הקובץ ישירות מהאתר ומקליט דרך התוכנה שעושה שימוש בהתקן ההקלטה של כרטיס הקול במחשב.
Cam Studioבמה זה שונה מהקלטה דרך אפליקציית 'מקליט קול' המובנית בווינדוס?
יש אופציה להגדיר שההקלטה תהיה פנימית ולא דרך מיקרופון, וזה מקליט מצויין. -
@Wild אמר בהורדה מאתר jewishmusic:
יש גם תוסף לכרום שעושה את זה ישירות מהפלט שמע של הדפדפן
שם או כתובת?
-
https://chrome.google.com/webstore/detail/chrome-audio-capture/kfokdmfpdnokpmpbjhjbcabgligoelgp
כתוב שם בתיאור התוסף שהקלטת השמע היא אפילו אינדיבידואלית לטאב, לא לדפדפן.
-
@Wild אמר בהורדה מאתר jewishmusic:
https://chrome.google.com/webstore/detail/chrome-audio-capture/kfokdmfpdnokpmpbjhjbcabgligoelgp
כתוב שם בתיאור התוסף שהקלטת השמע היא אפילו אינדיבידואלית לטאב, לא לדפדפן.
יפה מאד!