Siduction Forum

Siduction Forum => Software - Support => Topic started by: harley-peter on 2022/09/24, 20:57:24

Title: Audio von Internetseiten streamen
Post by: harley-peter on 2022/09/24, 20:57:24
Hallo,
wie kann ich von beliebigen Internetseiten den Ton streamen und aufzeichnen? Mit Streamtuner und VLC habe ich schon rumgespielt, habe es aber leider nicht geschafft. Auch mit OBS Studio kann ich anscheinend Audio nicht separat aufnehmen.
Title: Re: Audio von Internetseiten streamen
Post by: michaaa62 on 2022/09/24, 23:10:06
youtube-dl hat eine Option '-x' '--extract-audio' Zitat-Manpage: Convert video files to audio-only files (requires ffmpeg/avconv and ffprobe/avprobe), die vom Video nur den Ton in eine Datei runterlädt.
Title: Re: Audio von Internetseiten streamen
Post by: harley-peter on 2022/09/25, 17:05:24
Ja, sowas suche ich aber für alle Internetseiten, nicht nur für Youtube Videos.
Title: Re: Audio von Internetseiten streamen
Post by: michaaa62 on 2022/09/25, 17:30:32
Meiner Erfahrung nach kann youtube-dl, unabhängig vom Namen, Videos auf Webseiten finden und diese runterladen, also auch nur die Tonspur in eine lokale Datei wandeln. Einfach mal testen, könnte sein, dass auch die für dich interessanten Inhalte verarbeitet werden.
Viel Erfolg!
Title: Re: Audio von Internetseiten streamen
Post by: charlyheinz on 2022/09/26, 08:51:58
@harley-peter
Hast du schon einmal yt-dlp-gui ausprobiert. Sehr komfortabel und kann so einiges.
Title: Re: Audio von Internetseiten streamen
Post by: hendrikL on 2022/09/26, 11:11:26
Als Erstes, ich weiß zufällig, dass es sich um xfce als GUI/Windowsmanager handelt, gtk basiert, zumindest war es mal so.

Ich nutze Plasma/kde/kf5, qt basierend,

Es gibt ein nettes Werkzeug, qpwgraph genannt, basiert auf qt!

Mit jenem kann Mensch Streams/Tonaufzeichnungen steuern, vorausgesetzt man nutzt pipewire und hat entsprechende  Module installiert.

Darunter sollte sich auf jeden Fall pipewire-alsa befinden.

Der Test-Aufbau war folgender, Firefox -> Audacity (aus den Debian Quellen installiert, apt install audacity) zum Aufnehmen/recording des Streames-> interne Lautsprecher und Bluetooth-Lautsprecher.

Es hat funktioniert,

Das heißt, Browser starten, Audacity starten, qpwgraph aktivieren, entsprechend verkabeln, Aufnahme drücken und es sollte funktionieren.

In Audacity habe ich Alsa als Eingabe-Gerät gewählt, zu sehen alles auf dem beigefügtem Bild.

(https://forum.siduction.org/index.php?action=dlattach;topic=8714.0;attach=1374)

EDIT:

Ich habe dann noch einen Stream von ARTE TV getestet, dort konnte auch der Ton mitgeschnitten werden.
Auch habe ich es mit Ardour6 getestet, das Setup ist etwas umfangreicher (mit Kanone auf Spatzen geschossen), auch mit diesem Programm konnte ich den Ton mitschneiden.

Und ja, yt-dl ist einfacher zu bedienen! ;)

Title: Re: Audio von Internetseiten streamen
Post by: edlin on 2022/09/26, 14:21:18
qpwgraph ist halt eine sehr universelle Lösung, erfordert aber etwas mehr Aufwand und man hat "Kabelsalat".
Wer nur Youtube aufnehmen will (egal ob Audio only oder komplett), der kann sich das Qt-Frontend zu yt-dlp anschauen:
media-downloader. Ist in den Repos, also einfach installieren.
Bei anderen Webseiten: Kommt drauf an.
Dafür einfach zu bedienen, kann auch Stapelverarbeitung.

edlin
Title: Re: Audio von Internetseiten streamen
Post by: samoht on 2022/09/27, 08:59:36
Quote
media-downloader. Ist in den Repos, also einfach installieren.

@edlin, meinst Du webext-bulk-media-downloader?

Code: [Select]
$ apt-cache search media-downloader
webext-bulk-media-downloader - Cross-browser extension to detect and download media resources
Title: Re: Audio von Internetseiten streamen
Post by: edlin on 2022/09/27, 10:00:52
Sorry, das ist in deb-multimedia.org (Christian Marillat) enthalten. Die Sourcen müssen also einen Eintrag analog
Code: [Select]
deb [ signed-by=/usr/share/keyrings/multimedia-archive-keyring.gpg] https://www.deb-multimedia.org/ sid main non-free enthalten.

Dann sollte es so aussehen:
Code: [Select]
foobar@Devil:/$ apt search media-downloader
Sortierung… Fertig
Volltextsuche… Fertig
media-downloader/unstable,now 2.5.0-dmo1 amd64  [installiert]
  yt-dlp Qt frontend.

webext-bulk-media-downloader/testing,unstable 0.2.1-3.1 all
  Cross-browser extension to detect and download media resources

edlin
Title: Re: Audio von Internetseiten streamen
Post by: samoht on 2022/09/28, 08:42:23
Danke, @edlin, hatte ich vermutet  :)
Title: Re: Audio von Internetseiten streamen
Post by: harley-peter on 2022/09/28, 17:26:34
@edlin:
Wo bekomme ich denn den multimedia-archive-keyring.gpg Schlüssel her? Auf debian-multimedia.org finde ich nur die deb Version, die ich dann mit dpkg -i installiert habe aber apt mault trotzdem, dass der Schlüssel nicht verfügbar ist.

Noch eine Frage zu yt-dlp:
Ich möchte nicht nur den Ton von Videos aufzeichnen sondern z. B. auch von Radio Webseite. Kann das das Programm auch?

edit:
Das mit dem Schlüssel habe ich hinbekommen.
Title: Re: Audio von Internetseiten streamen
Post by: samoht on 2022/09/29, 09:32:03
Quote
edit:
Das mit dem Schlüssel habe ich hinbekommen.

Sehr hilfreiche Aussage!  >:(
Title: Re: Audio von Internetseiten streamen
Post by: edlin on 2022/09/29, 10:30:06
Schlüssel liegt unter dem Abtreter!  ;)

Falls noch nicht geschehen:
Code: [Select]
apt install deb-multimedia-keyringBei Problemen könnte auch dieser Thread helfen:
https://forum.siduction.org/index.php?topic=8551.0 (https://forum.siduction.org/index.php?topic=8551.0)

edlin
Title: Re: Audio von Internetseiten streamen
Post by: harley-peter on 2022/09/29, 12:40:15
@samoht:
Sorry, war nicht sehr sinnvoll. Das Problem hatte wirklich mit dem von edlin zitierten Thread zu tun. Ich hatte mich erinnert, dass ich das Problem schon mal hatte denn ein apt install keyring legt den Schlüssel in /etc/apt/trusted.gpg.d ab, was anscheinend nicht mehr funktioniert. Ich habe ihn dann in /usr/share/keyrings kopiert und den Zusatz [signed-by=/usr/share/keyrings/deb-multimedia-keyring.gpg] wie von edlin vorgeschlagen dem Repository Eintrag zugefügt, dann klappt es.
Title: Re: Audio von Internetseiten streamen
Post by: fab161 on 2022/10/02, 10:00:50
Falls das Thema noch nicht durch ist, möchte ich hier nochmal MPV empfehlen. So weit ich weiß muss man da über das Terminal einfach nur die URL angeben und dann die Flag --no-video oder so anhängen (im Zweifel mal in der man-Page oder der help-Ausgabe nachschauen). Das funktioniert für alle Websites, vermute ich mal, und das, gerade wenn es um Audio-Streams geht, auch sehr, sehr flüssig.
Title: Re: Audio von Internetseiten streamen
Post by: edlin on 2022/10/02, 15:15:40
So ein Thema ist, meiner bescheidenen Meinung nach, nicht schon nach der ersten angebotenen Lösung durch.
Gibt ja außer dem ThreadOpener auch noch andere User, die sich durchaus für das Thema interessieren könnten und jeder hat da wohl andere Ansprüche, vom Streaming bis zum Abspeichern der Audiodatei.

Was MPV betrifft: Es ist ja so die eierlegende Wollmilchsau. Schon das Manual verspricht mit seinen über 12000 Zeilen einiges an Optionen und Schalterchen; nur die ffmpeg Manuals sind da noch etwas länger ...

Code: [Select]
foo@Devil:~$ man mpv|wc -l
grotty:<standard input> (<standard input>):5812: character above first line discarded
grotty:<standard input> (<standard input>):5816: character above first line discarded
grotty:<standard input> (<standard input>):5820: character above first line discarded
grotty:<standard input> (<standard input>):217617: character above first line discarded
grotty:<standard input> (<standard input>):217621: character above first line discarded
grotty:<standard input> (<standard input>):217625: character above first line discarded
12393

Für die gelegentliche Anwendung ist das nicht jedermanns Sache.

Um den Audiokanal eines Videos zu speichern reicht es schon bis zu etwa Zeile 6000 des manuals zu lesen.
Einfach nach record suchen (ich hab natürlich erst nach output, save etc. gesucht  ::) ).

Wer es ausprobieren will, kann es mit Youtube testen:
Code: [Select]
foo@Devil:/tmp$ mpv --no-video https://www.youtube.com/watch?v=A7UjE8gkqhQ --stream-record=ThisIsDeutsch.mp4
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[ffmpeg] mp4: track 0: codec frame size is not set
[recorder] This is an experimental feature. Output files might be broken or not play correctly with various players (including mpv itself).
[recorder] Source stream misses DTS on at least some packets!
[recorder] If the target file format requires DTS, the written file will be invalid.
[ffmpeg] mp4: Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
AO: [pulse] 48000Hz stereo 2ch float
A: 00:04:36 / 00:04:37 (100%) Cache: 0.0s/1KB
Exiting... (End of file)
Oder auch:
Code: [Select]
foo@Devil:/tmp$ mpv --no-video https://www.youtube.com/watch?v=A7UjE8gkqhQ --stream-record=ThisIsDeutsch.mkv
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[recorder] This is an experimental feature. Output files might be broken or not play correctly with various players (including mpv itself).
[recorder] Source stream misses DTS on at least some packets!
[recorder] If the target file format requires DTS, the written file will be invalid.
[ffmpeg] matroska: Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
AO: [pulse] 48000Hz stereo 2ch float
A: 00:04:36 / 00:04:37 (100%) Cache: 0.1s/1KB
Exiting... (End of file)

Will man das Audio in ein mp3-File speichern, wird man allerdings eines Besseren belehrt:
Code: [Select]
@Devil:/tmp$ mpv --no-video https://www.youtube.com/watch?v=A7UjE8gkqhQ --stream-record=ThisIsDeutsch.mp3
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[ffmpeg] mp3: Invalid audio stream. Exactly one MP3 audio stream is required.
[recorder] Writing header failed.
[mkv] Disabling recording.
AO: [pulse] 48000Hz stereo 2ch float
A: 00:00:04 / 00:04:37 (2%) Cache: 272s/10MB

Exiting... (Quit)

Die Beispiele bedingen aber auch, dass man die Datei mit der Dauer von 00:04:37 auch in dieser Zeit anhört und speichert. Die Option, nur mal schnell den Audiokanal in ein paar Sekunden herunter zu laden suche ich noch.

Für den Quicky zwischendurch ist mir da Media Downloader doch lieber. Link eingeben, Mit Get List die möglichen Formate anzeigen lassen und unter Options einfach Best-audio anklicken - fertig. Und Batch-/Playlistverarbeitung schafft der auch.

Für die Verarbeitung in eigenen Skripten, mit einer Feinabstimmung inkl. div. Filter, ist natürlich MPV ideal. Es kommt also, wie so immer, auf die Aufgabe an.

edlin 
 
Title: Re: Audio von Internetseiten streamen
Post by: harley-peter on 2022/10/02, 17:55:29
Ich habe mittlerweile eine Lösung gefunden, die auch funktioniert:
Ich habe in Firefox die Erweiterung Video DownloadHelper installiert, damit lassen sich die Audio Daten streamen. Allerdings musste ich für das Speichern noch das Paket net.downloadhelper.coapp installieren. Damit lassen sich die Daten dann auch gleich im Browser in das benötigte Format konvertieren.
Title: Re: Audio von Internetseiten streamen
Post by: pit on 2022/10/02, 22:29:43
Ich weiß - es geht nicht nur um die Audiospur von Youtube Videos. Trotzdem hier meine Lösung dafür - ein alias, der yt-dlp nutzt:

Code: [Select]
alias yta='yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --add-metadata -o '\''%(title)s.%(ext)s'\'' '
Aufruf dann einfach (Beispiel) via

Code: [Select]
yta https://youtu.be/sQg79Fgtn-o
Schreibt auch Thumbnail und Titel in die Metadaten der mp3-Datei.

Für alles andere nutze ich das, was hendrikL weiter oben beschrieben hat. Pipewire und qpwgraph machen den Job wunderbar.