Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Javascript&Mp3 (https://javascript.ru/forum/css-html/36874-javascript-mp3.html)

goodwin74 30.03.2013 00:14

Javascript&Mp3
 
Есть сайт, где публикуют ссылки прямые на mp3. Есть ли возможность используя ссылку выводить информацию о файле на этом сайте, что то вроде битрейта и вес файла.
Облазил интернет нашел пару скриптов, но работает только с файлами на своем домене, а ссылки на mp3 все идут с других доменов. И в связи с этим идет ошибка XMLHttpRequest cannot load is not allowed by Access-Control-Allow-Origin.

Как быть? Подскажите, пожалуйста!

zilker 30.03.2013 02:22

Разве что использовать html5 audio api. Тема довольно обширная, лучше почитайте здесь - Читаем ID3-теги из mp3

goodwin74 30.03.2013 02:38

Тема то может и обширная, но везде примеры работы с файлами на своем же сервере, а ка кбыть с файлами со стороннего сайта?

Я уже был там. Но увы там грузится файл и соответственно если файл с левого сайта происходит ошибка асес контрол , мне вот интересно реально ли вытащить метаданые из тега audio html5. Не зря же свойство есть preload='metadata'

goodwin74 31.03.2013 12:47

не ужели нет решения? Может есть другие способы определить битрейт музыкальных файлов mp3 со сторонних сайтов?

dmitriymar 31.03.2013 13:17

Цитата:

Сообщение от goodwin74
не ужели нет решения? Может есть другие способы определить битрейт музыкальных файлов mp3 со сторонних сайтов?

каскад фреймов -позволит посчитать файл своим, только вот это тоже не приветствуется
проксирование на сервере
....

А вообще если включить каплю логики, если действия блокируются политикой безопасности браузера , то обход этой политики в браузере , будет свидетельствовать о том, что политика безопасности не работает. А она работает

Цитата:

Сообщение от goodwin74
мне вот интересно реально ли вытащить метаданые из тега audio html5. Не зря же свойство есть preload='metadata'

пытаюсь найти связь и логику в этом высказывании -не могу . браузер может получить всё , и получает при соответствующих настройках. а вот что из этого будет доступно решает политика безопасности .

danik.js 31.03.2013 14:45

Так или иначе, без загрузки файла в браузер эту информацию нельзя отобразить. Как вариант - серверный скрипт, запускаемый по крону, качает файлы, измеряет битрейт и вес. Опять же тупо как-то получается. Да и объемы трафика нешуточные.

goodwin74 31.03.2013 14:59

Ну загрузка то осуществляется, т.е. если установить в параметр preload значение metadata по сути браузер загрузить первую часть файла, где хранятся ID3 теги. И у меня и возникает вопрос как из этого кусочка получить теги.

devote 31.03.2013 15:35

Цитата:

Сообщение от goodwin74
Ну загрузка то осуществляется, т.е. если установить в параметр preload значение metadata по сути браузер загрузить первую часть файла, где хранятся ID3 теги. И у меня и возникает вопрос как из этого кусочка получить теги.

битрейт и время воспроизведения записи без знания размера файла, вы не сможете получить. Так как это высчитывается именно путем подсчета фреймов во всем файле. А ID3 теги не содержат такой информации, и чаще всего их никто не заполняет или заполняют мусором

goodwin74 31.03.2013 19:56

Я помню устанавливал знакомому расширение на хром Music Sig по моему называется так, суть его заключалась в выводе информации о битрейте и размере файла, не ужели это расширение качает полностью весь плейлист или результаты поиска ВК - это же не реально. Я не могу сказать как там реализована функция, но по быстроте мало вероятно что через php и загрузку фул файла

danik.js 31.03.2013 20:16

Цитата:

Сообщение от goodwin74
Я не могу сказать как там реализована функция

Почему не можешь? Посмотри и расскажи всем.

goodwin74 31.03.2013 23:39

Не могу ввиду неимения профессионализма в данном языке, чтобы разобрать чужой код. Логично предположить что если бы мог, я бы не задал вопрос на этом форуме.

danik.js 01.04.2013 05:18

Ну потрудись запостить код здесь - посмотрим.

goodwin74 02.04.2013 08:55

Вложений: 1
Вот прикрепил скрипты расширения, там я так понимаю в msfunc.js все функции и в том числе чтение битрейта с размером файла.

dmitriymar 02.04.2013 10:41

Цитата:

Сообщение от goodwin74
от прикрепил скрипты расширения, там я так понимаю в msfunc.js все функции и в том числе чтение битрейта с размером файла.
Вложения:

И?
ясно ведь видно , что получает заголовки со своего сайта , либо с сайта к какому разрешен доступ
Цитата:

function getRemoteFileSize(a,b){$q("HEAD",a,function(c){if( c.status==200){c=getHttpHeader(c.headers,"Content-Length");if(b){var d=ge("dur"+b.id);if(d){durx=d.innerText.split(":") ;durx=durx[0]*60+parseInt(durx[1]);durx=c/durx/125|0;d.innerText=BytesToStr(c)+(durx?" ("+durx+" kbps)":"")+" "+d.innerText}if(d=ge(b.id+"x"))d.innerText+=" "+BytesToStr(c)}}})}

goodwin74 03.04.2013 02:52

Я не совсем понимаю каким образом? Чистым JS получает доступ? Дуров то точно не дал ему доступ, а наоборот ВК меняет структуру, чтоб такие расширения выходили из строя.

dmitriymar 03.04.2013 09:59

Цитата:

Сообщение от goodwin74
Я не совсем понимаю каким образом? Чистым JS получает доступ? Дуров то точно не дал ему доступ, а наоборот ВК меняет структуру, чтоб такие расширения выходили из строя.
Ответить с цитированием Нажмите у нескольких сообщений, и затем - БОЛЬШУЮ кнопку ответить Быстрый ответ на это сообщение
Ответ

Заладил , надоел уже ...
Если это дополнение браузера , то оно имеет доступ гораздо больше,политики безопасности не распространяются на дополнения , чем страница открытая в браузере
Разные это технологии. Уже не однократно сказали что нет .

Цитата:

Сообщение от goodwin74
Не могу ввиду неимения профессионализма в данном языке, чтобы разобрать чужой код.

Неужели тяжело , рассмотреть 3 строки кода, погуглить если оператор незнаком? Увидеть что это аякс , что читает из заголовков, и сложить что на запросы подобные из браузера действуют запреты политики безопасности, а на дополнения нет , прежде чем "непонимать"?


Часовой пояс GMT +3, время: 21:48.