-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mixcloud support #7
Comments
Hallo Invictaz, Het is altijd een vertaalslag van programma-url naar audio/video-url, dus welke programma-url hoort er bij die audio-url (of "endpoint" zoals jij het noemt)? |
Ik schuif dit even op de lange termijn. |
Ik heb even voor je gezocht @Reino17 het is nog niet zo simpel omdat die troep allemaal werkt tegenwoordig met oauth en tokens. Soundcloud https://gist.github.com/ic3y808/96d12b615fa0192ac36d SUPEROUD VOOR MIXCLOUD IK WEET NIET OF HET NOG WERKT mixurl= Verder kwam ik dit tegen voor je, wellicht is het interessant om e.e.a. uit te slopen: https://linoxide.com/linux-how-to/tizonia-command-line-music-player-linux/ |
Nog een API URL voor Soundcloud: http://api.soundcloud.com/tracks?q=Adventure&limit=5&client_id=7fda73e4303db4146b1b2145944d3e1c |
Super oud maar maybe it works |
Om gebruik te maken van de SoundCloud api heb je een account nodig (met een clientid, clientsecret, password, token en weet ik wat meer). Voor gebruik in
Misschien dat dat in het verleden heeft gewerkt, maar nu valt in de html-bron (van https://www.mixcloud.com/EricVanKleef/clubbin-12-wildfm-30-mei-2020/) niks meer terug te vinden. Trouwens, je kunt je posts ook aanpassen, hè... i.p.v. 4 losse posts. |
Ik kan het niet aanpassen in IE11, die browser wordt nog maar zeer beperkt ondersteund door Github. Sommige van de code die ik gepost heb is (expres) zo jong mogelijk. Maar blijkbaar is de 2 jaar oude code al achterhaald. Ik heb de Youtube-dl code wel in gebruik in Foobar voor Mixcloud maar nog niet getest op Soundcloud. |
Ah ja, ik weet er alles van. Mijn Pale Moon (Firefox fork) browser ondersteunt de nieuwste javascript ook niet, waardoor ik posts ook niet kan aanpassen. Dat moet ik op mijn smartphone doen. Daarom probeer ik het ook altijd in één keer goed te doen. Ok, ik ben in ieder geval nu zo ver dat ik de desbetreffende JSON te pakken heb:
https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/mixcloud.py#L141-L142: decrypted = self._decrypt_xor_cipher(
self._DECRYPTION_KEY, compat_b64decode(format_url)) Het Base64 decoderen is niet zo spannend...
...maar daar komt brabbeltaal uit en ik begrijp niet hoe die |
Ik post het altijd vrij snel aangezien je soms een hele berg getikt hebt en dan is je pagina timed-out ofzo. Overigens is Pale Moon 28 de laatste voor XP, recenter is MyPal: https://github.com/Feodor2/Mypal Ontopic: Wellicht heeft Xidel geen support voor die decryption key. Wat is de uiteindelijke url van die json? xidel -se ' En dan krijg je een url? ik wist niet dat je regels onder elkaar kon invoeren in de commandline / terminal? |
Palemoon 27.9.7 hier. Vanwege mijn oude pc kan ik Palemoon 28 niet gebruiken.
Je zult versteld staan van wat
Die is er niet. Er wordt een "POST"-request gedaan naar https://www.mixcloud.com/graphql, met die JSON als antwoord.
Vreemd dat je dat nog niet was opgevallen. In zowel
Nee, je voert dit in...
...of dit...
...en je krijgt de JSON als antwoord:
Deze commando's zijn trouwens voor Linux Bash. Voor Windows CMD is het...
of
|
@Invictaz Zou je de volgende (Windows) one-liner willen proberen?
(haal Als het goed is krijg je dan een JSON met "gedecrypte" audio-urls als output. |
@Reino17 It works 👍 Het selecteren van dergelijke groen gekleurde urls kan wellicht slimmer??? Overigens kwam ik ook vandaag deze tegen: https://github.com/Oros42/mixcloud-dl/ |
Overigens is de PD stream (de eerste) En de tweede de HLS-0 best een vreemde codec ADTS En de tweede de HLS-1 maakt geen verschil. Die pakt ook die codec. Ik zie trouwens dat die Sig elke keer hetzelfde is aan het einde per bestand In elk geval super bedankt. Misschien dit issue afsplitsen naar Mixcloud en dan een nieuw issue voor Soundcloud. Dit eerste stuk van de code is echt heel indrukwekkend
Hmm als ik een andere url probeer werkt het niet, en ik heb het precies volgens het format erin geplakt. Zal wel een andere CSRF token zijn ofzo |
Het is mij eindelijk gelukt om met de oneliner aan de slag te gaan en zelf urls te extracten. Het is niet eenvoudig Ik zat eerst te klooien met de manifest.mpd maar daar heb je niks aan, die haalt alle audio op in aparte .m4s bestanden. (MPEG-DASH). Dus het is best knap dat je de directe m4a en de m3u8 gevonden hebt. De velden die je moet aanpassen in de code om een andere stream te pakken zijn: X-CSRFToken: BLABLA Als je 1 van deze vergeet aan te passen dan krijg je een 403 error in de commandline. Alles moet dus kloppen. Ik heb deze eruit gehaald met Chrome -> Inspect element -> Zoek op graphql in de Network tab -> Copy request as cmd en dat resultaat in Notepad plakken. Variabelen eruit halen die je nodig hebt en in die oneliner plakken en dat in CMD zetten en uitvoeren. Dit zal overigens wel de absolute noob manier zijn, maarja it works... Mocht je tips hebben hoe dat slimmer kan dan hoor ik het graag. De Sig is dus per bestand verschillend maar niet per sessie. Nu hopen dat e.e.a. in Xivid verwerkt gaat worden zodat je niet steeds al die waarden handmatig moet overnemen. En je gewoon Xivid.sh of Xivid.bat MIXCLOUDURL kan doen en dat hij dan de hls-0 weergeeft. Dat is de volgende stap denk ik. |
Dat is een nadeel van
Bedankt. Ik had natuurlijk kunnen weten dat met het bezoeken van de programma-url het "csrftoken" wordt aangemaakt.
Werkt die website weer heel anders dan?
Bedankt. Zie benibela/xidel#54. ;)
Met
Met de "POST query" kun je precies aangeven wat je wilt hebben. I.p.v. Dit vraagt
Voor zover ik heb ondervonden zijn de volgende headers het minimale noodzakelijke:
Ik vind het vreemd dat ik in
Ik heb een werkende extractor, dus ja, dat kan dan. :) |
|
Voor het ontsleutelen van de Mixcloud audio-urls heb ik een "bitwise exclusive or"-functie nodig, maar
Tuurlijk. Met
Bij mij werkt ie zonder uid. |
Net als Och ja, programma-urls met een Trouwens, zou je alsjeblieft codeblocks willen gebruiken i.p.v. plaatjes?! Dan hoef jij niet te "lakken" en hoef ik de programma-url niet over te typen. |
Gek eigenlijk he, dat een trailing / zoveel extra code nodig heeft. Mixcloud werkt nu, dus ik sluit dit issue en maak er 1 aan voor Soundcloud, om het overzichtelijk te houden. Bedankt nogmaals. |
Mediahuman https://www.mediahuman.com/download.html is een van de weinige XP software die nog Mixcloud en Soundcloud download support en vaak geupdate wordt. Helaas closed source en hij installeert deze een hoop troep erbij zoals QT bijvoorbeeld. Aangezien Youtube steeds strikter wordt qua muziek (en Youtube-dl na maanden pas updates krijgt (of niet) voor Mixcloud en Soundcloud) werd het tijd om te kijken naar een alternatief. Ik gebruikte normaal altijd Lacey (the-sz.com) of 4k video downloader (https://www.4kdownload.com/nl/products/product-videodownloader) maar die ondersteunen beiden geen Mixcloud meer. Nu weet ik dat Xivid voornamelijk gefocussed is op video, maargoed wie niet waagt wie niet wint qua verzoekjes :)
De code om Mixcloud en Souncloud te scrapen is er wel, vaak in Python scripts
https://github.com/Miserlou/SoundScrape
Of in Chrome en Firefox extensies
https://github.com/mixcloud-downloader
Het voordeel van die Mediahuman is dat het bestand niet opgeslagen wordt als
"ae745f33egb32HHff.m4a" maar gelijk de Artiest en Titel ophaalt en de mogelijkheid geeft die vooraf aan het downloaden te bewerken. Plus, direct converteert naar mp3 ipv m4a als het bestand gedownload is. Het temp bestand wordt dan gedelete.
Misschien allemaal teveel werk, met alleen de m4a link + eventuele download optie zou ik ook al blij zijn. Elke keer Chrome opstarten is irritant. Foobar2000 heeft wel input support voor Mixcloud via een plugin. AIMP via foo_youtube met externe youtube-dl en Winamp alleen met de onofficiële WACUP. Alledrie hebben geen download optie. VLC ondersteunt het niet native en ik heb geen plugin kunnen vinden.
Voorbeeldje van een Soundcloud endpoint: https://stream10.mixcloud.com/secure/c/m4a/64/0/0/1/c/6fcc-4335-4aaf-8305-84e709ccc1d9.m4a?sig=FJ29cabjN0VlZe_zdXQQcw
Er zit dus een signature bij en wellicht nog wat andere rommel zoals een token.
The text was updated successfully, but these errors were encountered: