Aqui está uma maneira de fazer isso, o ponto crucial é o * Repo-baseurl: "que é reportado pelo comando yum repolist:
# curl -s --dump-header - 'yum repolist rhcd -v | grep Repo-baseurl | awk '{print $2}'' -o /dev/null
HTTP/1.1 200 OK
Date: Fri, 17 May 2013 09:58:30 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html;charset=ISO-8859-1
Repartição disso:
yum repolist rhcd -v
Loading "fastestmirror" plugin
Config time: 0.104
Yum Version: 3.2.22
Loading mirror speeds from cached hostfile
Repo-id : rhcd
Repo-name : rhcd
Repo-status : enabled:
Repo-updated: Mon Nov 1 14:37:19 2010
Repo-pkgs : 2,599
Repo-size : 3.7 G
Repo-baseurl: http://lochost:81/core_build/il31/centos/5Server/i386/CentOS/
Extraia a base com grep e pipe para awk para o URL.
use a opção de cabeçalho de dump do curl para ver o status http:
HTTP/1.1 200 OK
Date: Fri, 17 May 2013 09:58:30 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html;charset=ISO-8859-1
É claro que o yum é um programa python muito bem montado, então eu acho que você também poderia colocá-lo junto como um utilitário Python importando os bits relevantes do yum.
Sem um repolist do reponame yum irá listar todos os repositórios do yum. Você pode então processá-los em um loop.