Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
UPDATE: nyní to funguje jednoduše pomocí yt-dlp, viz tento issue
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"