Skip to content
  • Past due by about 2 years Last updated about 2 years ago

    записки для себя Запись звука import requests stream_url = 'http:…

    записки для себя

    1. Запись звука
    import requests
    stream_url = 'http://your-stream-source.com/stream'
    r = requests.get(stream_url, stream=True)
    with open('stream.mp3', 'wb') as f:
        try:
            for block in r.iter_content(1024):
                f.write(block)
        except KeyboardInterrupt:
            pass
    1. О плагине About со ссылками на сверчка и прочее
    2. Скролл по режиму 0 влево и вправо
    3. Адаптация столбцов к ширине area интерфейса, хотя бы
    4. Избранное
    5. Информация о композиции - вытаскивать
    #!/usr/bin/env python
    from __future__ import print_function
    import re
    import struct
    import sys
    try:
        import urllib2
    except ImportError:  # Python 3
        import urllib.request as urllib2
    
    url = 'http://pool.cdn.lagardere.cz/fm-evropa2-128'  # radio stream
    encoding = 'latin1' # default: iso-8859-1 for mp3 and utf-8 for ogg streams
    request = urllib2.Request(url, headers={'Icy-MetaData': 1})  # request metadata
    response = urllib2.urlopen(request)
    print(response.headers, file=sys.stderr)
    metaint = int(response.headers['icy-metaint'])
    for _ in range(10): # # title may be empty initially, try several times
        response.read(metaint)  # skip to metadata
        metadata_length = struct.unpack('B', response.read(1))[0] * 16  # length byte
        metadata = response.read(metadata_length).rstrip(b'\0')
        print(metadata, file=sys.stderr)
        # extract title from the metadata
        m = re.search(br"StreamTitle='([^']*)';", metadata)
        if m:
            title = m.group(1)
            if title:
                break
    else: 
        sys.exit('no title found')
    print(title.decode(encoding, errors='replace'))
    >>> import urllib2
    >>> f = urllib2.urlopen('http://89.238.146.142:7030')
    >>> for i, line in enumerate(f):
    ...   if line.startswith('icy-name') or i > 20: break
    ... 
    >>> if i > 20: print 'failed to find station name'
    ... else: print 'station name is', line.replace('icy-name:', '')
    ... 
    station name is Ibiza Global Radio
    1. Интеграция с Аудасити - скачанный файл преобразовать в миди файл и импортировать

  • No due date Last updated over 7 years ago
    100% complete