Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.
Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.
Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.
Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů
… více »Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).
Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).
Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.
Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.
V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »
UPDATE: nyní to funguje jednoduše pomocí yt-dlp, viz tento issue, takže stačí v řádku zadat yt-dlp URL_PORADU_NA_rozhlas.cz (poradí si i s vícedílnými pořady, viz komentáře).
Z webu českého rozhlasu si již nějakou dobou stahuji obsah pomocí rozšíření do prohlížeče VideoDownloadHelper. Bohužel se obsah stále častěji streamuje pomocí protokolu DASH v XML verzi, který není tímto rozšířením zatím podporován. Stále ale funguje stahování ručně, k čemuž jsem si napsal malý skript.
Nejprve je pomocí vývojářských nástrojů potřeba zjistit adresu manifestu, což je popsáno zde.
V případě, že je souborů na stránce více je lze všecchny zkopírovat postupem zde, což spočívá v zásadě na tom, že vývojářské nástroje běží v okně, pak se spustí vývojářské okno (CTRL+SHIFT+I) na toto okno a do konzole se napíše:
copy(UI.panels.network.networkLogView.dataGrid.rootNode().flatNodes.map(n => n.request().url()).join('\n'))
Samotný skript (uložil jsem si ho jako stahni_rozhlas.sh) je pak takovýto:
#!/bin/bash
for i in ./*
do COUNTER=0
sed -i '/^$/d' "$i" # odstraní případné prázné řádky na konci souboru
name=$( tail -n 1 "$i" ) # Jméno adresáře a souborů z posledního řádku souboru
mkdir "$name"
while IFS= read -r line || [ -n "$line" ] # přečte soubor řádku po řádce
do
if [[ $line == *.mpd ]] # stahujeme jen manifesty
then let COUNTER=COUNTER+1
echo "$line"
printf -v COUNTER_dec '%02d' $COUNTER # soubory číslujeme vždy dvěma číslicemi
yt-dlp $line -o "$name"/"$COUNTER_dec"_"$name".m4a
fi
done < "$i"
done
Předpokládá, že bude spuštěn v adresáři, kde jsou pouze soubory následující struktury:
https://croaod.cz/stream/b00ffa1f-90c1-4f56-8a31-f185325f606e.m4a/manifest.mpd https://croaod.cz/stream/ac2e5f60-295f-4d24-8641-0f52f623b4cb.m4a/manifest.mpd https://croaod.cz/stream/87d6504d-e8e6-4cd2-bdf5-d29b8b06fcde.m4a/manifest.mpd https://croaod.cz/stream/f7a34e65-680d-49c8-bd1c-474450546284.m4a/manifest.mpd https://croaod.cz/stream/ed0f47af-a475-4b9a-a2a2-cb259aee7496.m4a/manifest.mpd Osudy Jana Vlasáka
Poslední řádek je název adresáře, kam budou jednotlivé díly staženy do stejnojmených souborů očíslovaných vepředu dvěma číslicemi od 01. Všechny ostatní řádky jsou pak odkazy na manifesty jednotlivých dílů. Očekává se, že jsou popořadě.
Doufám, že VDH se tento typ stahování brzo naučí, otázal jsem se na to.
Tiskni
Sdílej:
něco podobnýho se tady už jednou řešilo hele :O ;D
ffmpeg -i "https://croaod.cz/stream/83478896-a9a9-4bf3-9b53-261cdff893ef.m4a/playlist.m3u8" cro_track.mp3
#!/bin/bash
echo
# Funkce pro získání řetězce mezi dvěma řetězci
get_string_between() {
start_str=$1
end_str=$2
input_str=$3
result=$(echo "$input_str" | awk -v a="$start_str" -v b="$end_str" 'BEGIN{FS=a} {split($2, parts, b); print parts[1]}')
echo "$result"
}
# Získání URL seriálu a názvu
read -p "Zadejte URL seriálu: " url
read -p "Zadejte název seriálu: " series_name
# Stažení obsahu URL adresy
echo
echo
echo
echo "Stahování obsahu URL adresy: $url ..."
echo
echo
echo
# Načtení stránky
page_content=$(curl -s "$url")
# Získání odkazů na audio soubory
audio_link=$(echo "$page_content" | grep -oE '"part"[^ ]*mpd')
#echo "RAW odkaz na audio soubor:"
#echo "$audio_link"
# Úprava odkazů pro stažení - odstranění zpětných lomítek a výměna "stream" za "download"
audio_link=$(echo "$audio_link" | sed -e 's/\\//g' -e 's/stream/download/g')
#echo "Upravený odkaz pro stažení:"
#echo "$audio_link"
readarray -t links_array <<< "$audio_link"
echo "----------------------------------------------------------"
# Procházení řádků s odkazy
for ((i=0; i<${#links_array[@]}; i++)); do
#echo ${links_array[$i]}
# Vyseparování čísla dílu
part_str='"part":"'
part=$(get_string_between "$part_str" '"' "${links_array[$i]}")
#echo "Číslo dílu: $part"
# Vyseparování odkazu na soubor
link=$(get_string_between "https" "m4a" "${links_array[$i]}")
odkaz="https"$link"m4a"
echo "$odkaz"
# vytvoření názvu ukládaného souboru s číslem dílu
# Pokud je číslo dílu menší než 10, vlož na začátek nulu kvůli řazení při přehrávání. Taky přidáme příponu
if [ $(( $part )) -lt 10 ]; then
new_filename="${series_name} 0$part.m4a"
else
new_filename="${series_name} $part.m4a"
fi
echo "$new_filename"
# Kontrola jestli již soubor existuje a pokud ne, tak jeho stažení
if [ -e "$new_filename" ]; then
echo "Soubor již existuje"
else
echo "Stahuji"
curl ${odkaz} -o "$new_filename"
#curl ${links_array[$i]} -o "$new_filename"
fi
echo "----------------------------------------------------------"
done
echo
echo
echo
echo "Stahování dokončeno."
echo
echo
echo
if [ $(( $part )) -lt 10 ]; then
new_filename="${series_name} 0$part.mp3"
else
new_filename="${series_name} $part.mp3"
fi
echo "$new_filename"
# Kontrola jestli již soubor existuje a pokud ne, tak jeho stažení
if [ -e "$new_filename" ]; then
echo "Soubor již existuje"
else
echo "Stahuji"
ffmpeg -v quiet -stats -i "${odkaz}" "$new_filename"
#!/bin/sh
IFS=$'
'
list=`cat $1`
#echo "$list"
for item in $list
do
yt-dlp -c --replace-in-metadata 'title,uploader,playlist' ':' ' -' "$item"
done
Když je více dílů (uloží se do společného adresáře)
#!/bin/sh
IFS=$'
'
list=`cat $1`
#echo "$list"
for item in $list
do
yt-dlp -c --replace-in-metadata 'title,uploader,playlist' ':' ' -' -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' "$item"
done
Skripty říkají yt-dlp, aby přemazala metadata, pak používám easytag, který umí velmi jednodue hromadně vyplnit metadata tak, aby tag name odpovídal názvu souboru (včetně očíslování) - to se pak hodí pro přehrávání v přehrávači antennapod na Androidu.