Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"It ain't over until it's over." -- Casey Stengel


devel / comp.lang.python / RE: Automatic Gain Control in Python?

SubjectAuthor
* RE: Automatic Gain Control in Python?Steve GS
+- Re: Automatic Gain Control in Python?Stefan Ram
`- Re: Automatic Gain Control in Python?Michael F. Stemper

1
RE: Automatic Gain Control in Python?

<mailman.504.1653836659.20749.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18410&group=comp.lang.python#18410

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: Groni...@SGA.Ninja (Steve GS)
Newsgroups: comp.lang.python
Subject: RE: Automatic Gain Control in Python?
Date: Sun, 29 May 2022 11:04:14 -0400
Lines: 267
Message-ID: <mailman.504.1653836659.20749.python-list@python.org>
References: <013801d872d9$f8d13700$ea73a500$@SGA.Ninja>
<f167855f-40fe-5f6c-f5ae-ef66b07b46f8@Damon-Family.org>
<015301d872f1$6bf9afc0$43ed0f40$@SGA.Ninja>
<d5893c0a-12a4-b847-4b62-0b97ef1069ae@Damon-Family.org>
<017501d8731a$43882750$ca9875f0$@SGA.Ninja>
<cbb2c13b-2bcf-31f8-bff7-c2b294bc4ede@Damon-Family.org>
<003601d8736d$5cd3e610$167bb230$@SGA.Ninja>
Mime-Version: 1.0
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Trace: news.uni-berlin.de JhG5FMFz5i0cOnLt5kA+fwSCTAygq7Ndi3YBjGaWJFwA==
Return-Path: <Gronicus@SGA.Ninja>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=sga.ninja header.i=@sga.ninja header.b=gASOwR2I;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python?': 0.03; 'knows':
0.04; '2022': 0.05; 'programming.': 0.05; 'skip:= 10': 0.05;
'assumes': 0.07; 'suggestion': 0.07; 'task.': 0.07; 'apparently':
0.09; 'audio,': 0.09; 'browser,': 0.09; 'controlled': 0.09;
'damon': 0.09; 'describe': 0.09; 'design?': 0.09; 'footnote:':
0.09; 'fundamental': 0.09; 'ok,': 0.09; 'podcast': 0.09;
"shouldn't": 0.09; 'so?': 0.09; 'solving': 0.09; 'timing': 0.09;
'subject:Python': 0.12; 'talks': 0.14; 'announce': 0.15;
'problem.': 0.15; 'that.': 0.15; '"get': 0.16; 'another.': 0.16;
'automation.': 0.16; 'basic,': 0.16; 'broadcast': 0.16; 'c++,':
0.16; 'computers': 0.16; 'confused': 0.16; 'directly,': 0.16;
'edge.': 0.16; 'fetch': 0.16; 'from:addr:gronicus': 0.16;
'from:addr:sga.ninja': 0.16; 'hour.': 0.16; 'invested': 0.16;
'invoke': 0.16; 'lesson': 0.16; 'level,': 0.16; 'message-
id:@SGA.Ninja': 0.16; 'received:floathosting.com': 0.16;
'received:mars.floathosting.com': 0.16; 'sees': 0.16; 'these.':
0.16; 'violation': 0.16; 'voices': 0.16; 'volume,': 0.16; 'want,':
0.16; 'weekend.': 0.16; 'wrote:': 0.16; 'problem': 0.16; 'python':
0.16; 'reached': 0.17; 'speaker': 0.17; 'code.': 0.17; 'calls':
0.19; 'figure': 0.19; 'pm,': 0.19; 'url': 0.19; 'to:addr:python-
list': 0.20; 'option': 0.20; 'input': 0.21; 'languages': 0.22;
'maybe': 0.22; 'code': 0.23; 'command': 0.23; 'lines': 0.23;
'school': 0.24; 'skip:- 10': 0.25; 'python,': 0.25; 'programming':
0.25; 'seems': 0.26; 'again,': 0.26; 'attack': 0.26; 'pattern':
0.26; 'recording': 0.26; 'task': 0.26; 'visual': 0.26; "isn't":
0.27; 'bit': 0.27; 'output': 0.28; 'sense': 0.28; 'goes': 0.28;
'wrong': 0.28; 'computer': 0.29; 'it,': 0.29; 'attempt': 0.31;
'seem': 0.31; 'am,': 0.31; 'before.': 0.31; 'raise': 0.31;
'community': 0.31; 'program': 0.31; 'think': 0.32; 'exactly':
0.68; 'cable': 0.69; 'facility': 0.69; 'monitors': 0.69;
'playing': 0.69; 'took': 0.69; 'site': 0.70; '8bit%:43': 0.70;
'audio': 0.70; 'average': 0.70; 'pieces': 0.70; 'sites': 0.70;
'too.': 0.70; 'you.': 0.71; 'compared': 0.71; 'receive': 0.71;
'late': 0.73; 'analyze': 0.75; 'sources': 0.75; 'finds': 0.76;
'450': 0.76; 'handles': 0.76; 'sent:': 0.78; 'highly': 0.78;
'discovered': 0.80; 'monitor': 0.81; 'industry': 0.81; 'editing':
0.84; '"user"': 0.84; 'base,': 0.84; 'blast.': 0.84; 'device,':
0.84; 'garden.': 0.84; 'grew': 0.84; 'levels.': 0.84; 'quality,':
0.84; 'recordings': 0.84; 'saturday,': 0.84; 'station': 0.84;
'to:addr:richard': 0.84; 'caused': 0.86; 'assembly,': 0.91;
'channels': 0.91; 'plays': 0.91; 'question?': 0.91; 'replay':
0.91; 'retained': 0.91; 'said.': 0.91; 'tend': 0.91
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sga.ninja;
s=default;
h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:
Date:Subject:In-Reply-To:References:To:From:Sender:Reply-To:Cc:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
List-Post:List-Owner:List-Archive;
bh=w16WoNVa83ngEHEzsWpYThzcayunU4YhRcsl32eX1ro=; b=gASOwR2IkoLqKKBHAKF48U3VZ8
afKCFmqb+IMHquEV0eSpix8G0wEmdr4gPhNJRN1B5sVycjk16uorJYa+9ujpj5DotLu22yQUdgP9C
5wMJdqHpqapT27j4aZuTfhcL0P+qgq3s7lx80IMJ+R3eIk8JsrwVL+L+/xbh9YOB9JrH6oxZun3Mz
sGTxb9ysDhbqzSSRyVSM7Hp1iWb6FJnNPTDKDVL80kgO/tF6dpdzpHt1mXT3n3nssMBZtfoxpwlGz
6BlsiNz8XnGywwU7QW0zgIIjtfmJ5HigBpeR4q2LLF/Bln0bvNjxmh2aJAP6ozCsqa4vzBlicQAKw
4BYw5S7g==;
In-Reply-To: <cbb2c13b-2bcf-31f8-bff7-c2b294bc4ede@Damon-Family.org>
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-us
Thread-Index: AQIdyvKawx2xMjKZNRb1MOl52t2tqwJSAGyvAmO85GECCmSigAJLan9PAP9CeXSsWtYEUA==
X-AntiAbuse: This header was added to track abuse,
please include it with any abuse report
X-AntiAbuse: Primary Hostname - mars.floathosting.com
X-AntiAbuse: Original Domain - python.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - SGA.Ninja
X-Get-Message-Sender-Via: mars.floathosting.com: authenticated_id:
gronicus@sga.ninja
X-Authenticated-Sender: mars.floathosting.com: gronicus@sga.ninja
X-Source:
X-Source-Args:
X-Source-Dir:
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <003601d8736d$5cd3e610$167bb230$@SGA.Ninja>
X-Mailman-Original-References: <013801d872d9$f8d13700$ea73a500$@SGA.Ninja>
<f167855f-40fe-5f6c-f5ae-ef66b07b46f8@Damon-Family.org>
<015301d872f1$6bf9afc0$43ed0f40$@SGA.Ninja>
<d5893c0a-12a4-b847-4b62-0b97ef1069ae@Damon-Family.org>
<017501d8731a$43882750$ca9875f0$@SGA.Ninja>
<cbb2c13b-2bcf-31f8-bff7-c2b294bc4ede@Damon-Family.org>
 by: Steve GS - Sun, 29 May 2022 15:04 UTC

>> From your description, your fundamental problem is you are trying to automatically "control" things that weren't designed to be automatically controlled in the way you are attempting.

How so? I am sending commands to a smart speaker and it plays podcasts and broadcasts.
How is this a violation of SS design?

==================>> The smart speaker assumes the "user" will adjust the volume either with the controls or with verbal commands, So things will be a bit "clunky" in your results as you command the smart speaker volume level.

So, you want me to sit here for every hour of the weekend and monitor the audio levels for a result that will get, at best, one replay when I believe it can be automated.

==================>> Yes, you have an automated system that does most of what you want, but it is based on pieces not designed to be automated in this way, and you are running into the limitations caused by that.

Again, what limitations of the SS am I violating? It is designed to receive commands and play the audio.
Also, what makes you think that you know how my program is based?

==================>> Yes, you could split the aux-out to bring it into another computer to listen to the sound level, and then using a sound input package get samples of what is playing, and analyze that data to get an average volume, and then issues the command to adjust the volume level.

Hmmm, is that not my original question? Are you suggesting to monitor the audio, sense it for volume changes and apply those changes to the original audio? One thing that may have to happen is a timed-delay to all for the AGC to work. This may require a correlation circuit.

=================>> What you seem to be missing is that you could get the podcasts from a browser, and all a browser is is a program. It isn't that much work to write a rudimentary browser in python, especially if you don't actually need to display the results to a user, but are only trying to automate a particular task.

Writing my own browser in Python might work. Do you have a sample one that I could twerk to fit my needs?
I would have to be able to invoke it and an hour later devoke it least I end up with multiple audio channels playing.

Either way, I would still need an AGC program which was my original question.

==================>> You seem to feel strongly invested in your current code base, which is understandable, but it seems you have reached a point where you don't want to live with the limitations CAUSED by that system.

The changes in volume are not CAUSED by my program. The want to fix them is a new development to improve the product. The volume fluctuations are causes, or neglections, by the engineers at the sources of podcasts and broadcasts.

>> Yes, there is likely a way to tack on another layer of "stuff" to adjust for this issue, but it likely is going to require some real programming.

>> It may well be the design I am suggesting, of writing a program to fetch the podcast and save it requires a bit more work to get to the level you currently are at, but the results are a system that is actually designed to be controlled by automation. Maybe it is beyond you ability, but then so might the programming to get the volume.

"Real programming"?, REAL PROGRAMMING? Well at this I have to say "Well duh". I have more than 40 years of programming in languages including assembly, Pascal, C, C++, BASIC, Visual BASIC, COBOL, VBA and Python for starters. I even dipped into AT&T's SNOBAL. Starting in the mid-80s, I taught Visual BASIC and VBA for 15 years in high school and at the University level.

I have 2000 lines of code of Python that helped me to bring my A1c reading from 9.0 to 6.1 thank you. I have a program of similar size that tracks the 450 specific plants in my garden. It even monitors degree-days to help me know when certain insects attack and when to tend to individual needs. This Excel/Jukebox program is also about 2000 lines of code. (Seems to be a pattern here). All of these programs are decorated with numerous pops and whistles that make programming and use quite pleasurable,

So, do you I think I am now ready for some "real programming".

==================>> I will also add, that the way your describe going to your "community"
gives me questions if this is a violation of copyright. Maybe it is something you can "Get away with", but I am not sure what you are doing is actually legitimate.

Yes, I have been through that. It is totally legal to record NPR broadcasts for replay as long as they are not retained for than a month or for multiple replays. Your suggestion to download and play a podcast or broadcast is legal only for live replay. My want to record them for one replay for my own use. Personal play is a different story.

-----Original Message-----
From: Richard Damon <richard.damon@gmail.com> On Behalf Of Richard Damon
Sent: Sunday, May 29, 2022 8:03 AM
To: Steve GS <Gronicus@SGA.Ninja>; Python <python-list@python.org>
Subject: Re: Automatic Gain Control in Python?

From your description, your fundamental problem is you are trying to automatically "control" things that weren't designed to be automatically controlled in the way you are attempting.

The smart speaker assumes the "user" will adjust the volume either with the controls or with verbal commands, So things will be a bit "clunky"
in your results as you command the smart speaker volume level.

Yes, you have an automated system that does most of what you want, but it is based on pieces not designed to be automated in this way, and you are running into the limitations caused by that.

Yes, you could split the aux-out to bring it into another computer to listen to the sound level, and then using a sound input package get samples of what is playing, and analyze that data to get an average volume, and then issues the command to adjust the volume level.

What you seem to be missing is that you could get the podcasts from a browser, and all a browser is is a program. It isn't that much work to write a rudimentary browser in python, especially if you don't actually need to display the results to a user, but are only trying to automate a particular task.

You seem to feel strongly invested in your current code base, which is understandable, but it seems you have reached a point where you don't want to live with the limitations CAUSED by that system. Yes, there is likely a way to tack on another layer of "stuff" to adjust for this issue, but it likely is going to require some real programming.

It may well be the design I am suggesting, of writing a program to fetch the podcast and save it requires a bit more work to get to the level you currently are at, but the results are a system that is actually designed to be controlled by automation. Maybe it is beyond you ability, but then so might the programming to get the volume.

I will also add, that the way your describe going to your "community"
gives me questions if this is a violation of copyright. Maybe it is something you can "Get away with", but I am not sure what you are doing is actually legitimate.

On 5/29/22 1:09 AM, Steve GS wrote:
> You really need to understand what I am trying to do.
> It is not a simple lesson in use of podcasts.
> This is an automated system. I call it my NPR Jukebox.
>
> 15 years ago, I started with hourly URL calls to a browser to record specific NPR programs. It took a lot of coordination. I had to use IE because I needed to start and stop browsers on the hour and IE was the only one that could do that. Then web sites started "upgrading" to Edge. Through some trickery I was able to get Edge to do what IE did but it was unstable.
>
> I then discovered the Echo Smart Speaker. I set my program to announce the broadcast station or podcast by speaker to the smart speaker and it cured a lot of headaches. I then was able to call podcasts because the Echo handles them through TuneIn. Unfortunately, not all broadcasts ae available as podcasts.
>
> I am not here diddling around just playing podcasts. Let me repeat
> what I have already said. It is an automated system. Every hour for
> 48 hours on every weekend, my system using a well-developed Excel/VBA
> program that vocally talks to the SS hourly. The SS finds the audio
> and sends it to my Audacity recorder on another computer through
> aux-out to mic-in cable. The selections of audio are also transmitted
> to the community at the time of recording
>
> That part of the system is almost flawless, well compared to that I had before. Although the quality, tone, and timing of the announcement, the SS still gets confused once in a while and goes silent for the hour. I need to detect this too.
>
> Ok, now back to the original question.
>
> Podcasts and broadcasts apparently do not use the Dolby tone to balance the audio levels. And I receive highly fluctuating levels of audio. Sometimes it is between sides of a conversation, sometimes it is the podcast vs station identifications, then it is great differences between one web site and another. Then there's the differences with male and female voices. Imagine that you are watching TV late night then the commercials COME IN AT FULL BLAST.
>
> The technology of the industry grew up with male voices and apparently sees no reason to adjust for female. I have worked with audio systems and making recordings for more years that I want to admit.
>
> All I want is software to detect level changes over time and attempt to equalize them.
> It has to be work between the SS and the recorder and is to be checking all the time.
>
> The code is to: Listen to the audio level for about 10 seconds or so and raise or lower the level in small increments.
> It has nothing to do with understanding how to grab podcasts. The system is working very well for that.
>
>
> Footnote:
> “What rhymes with orange?”
> “No, it doesn’t..”
>
>
>
> -----Original Message-----
> From: Richard Damon <richard.damon@gmail.com> On Behalf Of Richard
> Damon
> Sent: Saturday, May 28, 2022 11:37 PM
> To: Steve GS <Gronicus@SGA.Ninja>
> Subject: Re: Automatic Gain Control in Python?
>
> On 5/28/22 8:17 PM, Steve GS wrote:
>> "My first thought is you are solving the wrong problem. What seems a
>> better option would be to get your code to actually connect up to the
>> podcast and just download the audio directly, rather than trying to
>> get the smart speaker to play the audio and record it with a microphone."
>>
>> The smart-speaker is bringing in the podcast by hourly automated
>> commands and sending by audio cable to a computer which is recording
>> it with Audacity. This is an automated system that runs for 48 hours every weekend.
>> Its output is played live throughout the facility and is also
>> recorded for replay through the week.
>>
>> No download to use.
>>
>> AGC is to happen when the Smart Speaker is playing it, real time.
>> Any post-record editing would be a horrendous task to say the least.
>>
> My guess is you don't understand how "Podcasts" work. All they are is a web resource that your Browser/Smart Device makes a request off, and the contents are streamed over the internet to that device, which then plays it. Smart Speakers just have a program that knows how to access these.
>
> Since they can be listened to on a web browser, a program can download the data. They might be doing things to make this harder, but that is a sign that you shouldn't be doing this in the first place.
>
> Often, the data format that is streamed is exactly like the file format for storing an audio file (since that is what the code in the browser is built to handle).
>
> It may be a bit of work to figure out the access methods to get the data, but this is the sort of job that computers were designed to do.
> Trying to make things that weren't designed to be remote controlled to be remote controlled may well be a lot more work.
>
> --
> Richard Damon
>


Click here to read the complete article
Re: Automatic Gain Control in Python?

<audio-20220529162021@ram.dialup.fu-berlin.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18412&group=comp.lang.python#18412

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram...@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: comp.lang.python
Subject: Re: Automatic Gain Control in Python?
Date: 29 May 2022 15:23:51 GMT
Organization: Stefan Ram
Lines: 39
Expires: 1 Apr 2023 11:59:58 GMT
Message-ID: <audio-20220529162021@ram.dialup.fu-berlin.de>
References: <013801d872d9$f8d13700$ea73a500$@SGA.Ninja> <f167855f-40fe-5f6c-f5ae-ef66b07b46f8@Damon-Family.org> <015301d872f1$6bf9afc0$43ed0f40$@SGA.Ninja> <d5893c0a-12a4-b847-4b62-0b97ef1069ae@Damon-Family.org> <017501d8731a$43882750$ca9875f0$@SGA.Ninja> <cbb2c13b-2bcf-31f8-bff7-c2b294bc4ede@Damon-Family.org> <003601d8736d$5cd3e610$167bb230$@SGA.Ninja> <mailman.504.1653836659.20749.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de aSdNefB259FciqUIOHf8JQW052x1VsWmcS7Wf4jgD4t4B4
X-Copyright: (C) Copyright 2022 Stefan Ram. All rights reserved.
Distribution through any means other than regular usenet
channels is forbidden. It is forbidden to publish this
article in the Web, to change URIs of this article into links,
and to transfer the body without this notice, but quotations
of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
services to mirror the article in the web. But the article may
be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: en-US
Accept-Language: de-DE, en-US, it, fr-FR
 by: Stefan Ram - Sun, 29 May 2022 15:23 UTC

"Steve GS" <Gronicus@SGA.Ninja> writes:
>Also, what makes you think that you know how my program is based?

Well, here in this newsgroup the topic is Python, and we are
not legal experts. When someone asks how to use Python to do
something, I would first insinuate that he is legally entitled
to do this.

But sometimes I think it's funny how we give programming advice
to everyone, not knowing whether this someone is using the
programming advice to construct some program for an evil use.

>Writing my own browser in Python might work. Do you have a sample one =
>that I could twerk to fit my needs?

You can download a resource with something like

import pathlib
import ssl
import sys
import urllib.request

uri = f"http://www.example.com/audio.oga"
request = urllib.request.Request( uri )
skip = False
try:
resource = urllib.request.urlopen( request, context=ssl.SSLContext() )
except urllib.error.HTTPError: # HTTP Error 404: Not Found
skip = True
if not skip:
content_type = resource.getheader( 'Content-Type' )
if content_type == "audio/ogg":
path = pathlib.Path( "audio.oga" )
with path.open( mode='wb' )as file:
file.write( resource.read() )

, but if the web page requires JavaScript, you need to use Selenium.

Re: Automatic Gain Control in Python?

<t704cc$g04$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18413&group=comp.lang.python#18413

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: michael....@gmail.com (Michael F. Stemper)
Newsgroups: comp.lang.python
Subject: Re: Automatic Gain Control in Python?
Date: Sun, 29 May 2022 10:44:04 -0500
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <t704cc$g04$1@dont-email.me>
References: <013801d872d9$f8d13700$ea73a500$@SGA.Ninja>
<f167855f-40fe-5f6c-f5ae-ef66b07b46f8@Damon-Family.org>
<015301d872f1$6bf9afc0$43ed0f40$@SGA.Ninja>
<d5893c0a-12a4-b847-4b62-0b97ef1069ae@Damon-Family.org>
<017501d8731a$43882750$ca9875f0$@SGA.Ninja>
<cbb2c13b-2bcf-31f8-bff7-c2b294bc4ede@Damon-Family.org>
<003601d8736d$5cd3e610$167bb230$@SGA.Ninja>
<mailman.504.1653836659.20749.python-list@python.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 29 May 2022 15:44:12 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="376bc06ec40babfab08b8e788e435558";
logging-data="16388"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+YvscWIQkaoQZsDRvUufuVxLs6/750ZMA="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Thunderbird/68.10.0
Cancel-Lock: sha1:6GPM87KzI5+WFMoWYMMTAs4E0OE=
In-Reply-To: <mailman.504.1653836659.20749.python-list@python.org>
Content-Language: en-US
 by: Michael F. Stemper - Sun, 29 May 2022 15:44 UTC

On 29/05/2022 10.04, Steve GS wrote:

>>> What you seem to be missing is that you could get the podcasts from a browser, and all a browser is is a program. It isn't that much work to write a rudimentary browser in python, especially if you don't actually need to display the results to a user, but are only trying to automate a particular task.
>
> Writing my own browser in Python might work. Do you have a sample one that I could twerk to fit my needs?
> I would have to be able to invoke it and an hour later devoke it least I end up with multiple audio channels playing.

Somebody has already shown the rudiments of urllib. Another option to consider
is the use of something like curl or wget to download the podcasts, which can
be automated separately from your replay program.

--
Michael F. Stemper
This email is to be read by its intended recipient only. Any other party
reading is required by the EULA to send me $500.00.

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor