Interessante PHP code

Reidinga

VIP
28 mei 2017
1.096
1.180
216
38
Ik wil mijn mede programmeur/hobbyisten - graag motiveren en interesseren in het maken van allerhande tools voor IPTV. Zoals vele bekend is heb ik een grote variëteit aan IPTV programma's gemaakt, en vond dat het tijd was om een keer wat leuke php code te delen. Let op dit is niet voor beginnelingen, je moet wel een basis kennis van php hebben - maar met wat moeite krijg je het zo aan de praat.

In dit topic zal ik de komende tijd nog wel wat codes posten die ik wil delen, al dan niet in andere programmeertalen zoals Javascript, Pascal, C++, ASM, en anderen.

Bij deze de eerste:


Wat zit er in:
- m3u_auth.php (URL Un-Shortener en gate voor opvragen van account gegevens - welke ik ook gebruik via ajax calls vanuit javascript frontend)
- m3u_parser.php (PHP class - zoals de naam al zegt, een m3u parser in php. Deze accepteert een URL of lokale M3U file en zet deze om naar een Array van groepen met in elke groep de zenders uit die groep)
- mac_to_m3u.php (Hierin zit een functie waarmee je een mac adres account - op Xtream Codes API - kan omzetten naar een M3U username en password)
- smart_iptv.php (Stukje code wat nooit afgemaakt is omdat ik het niet gebruikt heb, de basis ligt er - misschien breid ik deze nog uit/maak ik er een class omheen in de toekomst. Je kan ermee een url uploaden naar SmartIPTV mac adres. Handig voor providers in de site te bouwen..)

2e PHP code:


Wat zit er in:
- xmltv.php (PHP class voor opstellen van XMLTV gids. Deze class is een helper class, je moet dus zelf de tvgids data aanleveren - ophalen uit api - of uit een andere source lezen - en je kan met deze class een xml opbouwen die compatible is met oa Kodi, SIPTV, Perfect Player, etc. Deze class is puur om code overzichtelijker te maken als je een eigen scraper schrijft, of zelf wil spelen met opbouwen van XMLTV gidsen in php).
- xmltv_merge.php (Simpel php scriptje wat 2 verschillende XMLTV gidsen ophaalt, en deze samenvoegt - en 1 XMLTV terug geeft. Deze kan je gebruiken voor het samenvoegen van lokale XMLTV bestanden, of remote XMLTV gidsen. Let wel op, als je veel gidsen probeert samen te voegen van remote sources kan het even duren voor deze samengevoegd is. Je kan deze uitbreiden om oneindig veel gidsen samen te voegen, er wordt geen controle gedaan op dubbele zenders of data - dit dien je zelf er in te maken indien nodig. Er wordt een last modified header meegegeven welke op de dag staat om middernacht, dit zodat kodi bijvoorbeeld niet 10x dezelfde xml probeert op te halen - bij een HTTP HEAD request ziet kodi dus dat de gids niet is aangepast, en voorkom je hiermee onnodig veel data verbruik).

Javascript Trakt:


Commentaar: Deze scripts dien je uit te voeren in de console (dev tools) in de browser, dit zijn code snippets die je uitvoert op de website van trakt zelf, als je bent ingelogd - en bouwen csv bestanden op van het overzicht aan films / series dat je bekeken hebt met naam en datum. Hij maakt per pagina (pagination) een zipfile, met daarin de csv - je wilt dus de laatste zip hebben, omdat daarin alle pagina's aan films/series staan. Mensen bekend met javascript zullen er wel aan uit kunnen.

Wat zit er in:
- Series.js (Exporteer bekeken series naar csv bestand)
- Movies.js (Exporteer bekeken films naar csv bestand)

Python Kodi Hulp Code:


Wat zit er in:
- erdplugintools.py (Python unit met allerlei help functies, gebruik deze unit in mijn eigen kodi video addons. Zo zitten er functies in voor instellingen lezen/schrijven uit de settings.xml, en uit settings.xml van andere addons, functie voor openen van instellingen dialog, een simpele HTTP GET wrapper die JSON object terug geeft, afspelen van resolved url, en allerlei dialogs. Deze unit is dus erg handig om zelf heel makkelijk te beginnen met maken van Kodi Video Addons).

Deze Source Codes zijn allemaal geschreven door mijzelf, dus geen copy paste code van internet - ik zou het waarderen als je het gebruikt je ook de toepassing wilt delen, al dan niet hier. Het zou leuk zijn om te weten dat het gebruikt wordt, bij deze gooi ik het in public domain - dus het is vrij te gebruiken. Als je deze code wilt verspreiden, staat dat volledig vrij al zou het leuk zijn als je wel de originele auteur (ik dus) zou willen vermelden.
 
Laatst bewerkt:
Ik wil mijn mede programmeur/hobbyisten - graag motiveren en interesseren in het maken van allerhande tools voor IPTV. Zoals vele bekend is heb ik een grote variëteit aan IPTV programma's gemaakt, en vond dat het tijd was om een keer wat leuke php code te delen. Let op dit is niet voor beginnelingen, je moet wel een basis kennis van php hebben - maar met wat moeite krijg je het zo aan de praat.

In dit topic zal ik de komende tijd nog wel wat codes posten die ik wil delen, al dan niet in andere programmeertalen zoals Javascript, Pascal, C++, ASM, en anderen.

Bij deze de eerste:


Wat zit er in:
- m3u_auth.php (URL Un-Shortener en gate voor opvragen van account gegevens - welke ik ook gebruik via ajax calls vanuit javascript frontend)
- m3u_parser.php (PHP class - zoals de naam al zegt, een m3u parser in php. Deze accepteert een URL of lokale M3U file en zet deze om naar een Array van groepen met in elke groep de zenders uit die groep)
- mac_to_m3u.php (Hierin zit een functie waarmee je een mac adres account - op Xtream Codes API - kan omzetten naar een M3U username en password)
- smart_iptv.php (Stukje code wat nooit afgemaakt is omdat ik het niet gebruikt heb, de basis ligt er - misschien breid ik deze nog uit/maak ik er een class omheen in de toekomst. Je kan ermee een url uploaden naar SmartIPTV mac adres. Handig voor providers in de site te bouwen..)

2e PHP code:


Wat zit er in:
- xmltv.php (PHP class voor opstellen van XMLTV gids. Deze class is een helper class, je moet dus zelf de tvgids data aanleveren - ophalen uit api - of uit een andere source lezen - en je kan met deze class een xml opbouwen die compatible is met oa Kodi, SIPTV, Perfect Player, etc. Deze class is puur om code overzichtelijker te maken als je een eigen scraper schrijft, of zelf wil spelen met opbouwen van XMLTV gidsen in php).
- xmltv_merge.php (Simpel php scriptje wat 2 verschillende XMLTV gidsen ophaalt, en deze samenvoegt - en 1 XMLTV terug geeft. Deze kan je gebruiken voor het samenvoegen van lokale XMLTV bestanden, of remote XMLTV gidsen. Let wel op, als je veel gidsen probeert samen te voegen van remote sources kan het even duren voor deze samengevoegd is. Je kan deze uitbreiden om oneindig veel gidsen samen te voegen, er wordt geen controle gedaan op dubbele zenders of data - dit dien je zelf er in te maken indien nodig. Er wordt een last modified header meegegeven welke op de dag staat om middernacht, dit zodat kodi bijvoorbeeld niet 10x dezelfde xml probeert op te halen - bij een HTTP HEAD request ziet kodi dus dat de gids niet is aangepast, en voorkom je hiermee onnodig veel data verbruik).

Javascript Trakt:


Commentaar: Deze scripts dien je uit te voeren in de console (dev tools) in de browser, dit zijn code snippets die je uitvoert op de website van trakt zelf, als je bent ingelogd - en bouwen csv bestanden op van het overzicht aan films / series dat je bekeken hebt met naam en datum. Hij maakt per pagina (pagination) een zipfile, met daarin de csv - je wilt dus de laatste zip hebben, omdat daarin alle pagina's aan films/series staan. Mensen bekend met javascript zullen er wel aan uit kunnen.

Wat zit er in:
- Series.js (Exporteer bekeken series naar csv bestand)
- Movies.js (Exporteer bekeken films naar csv bestand)

Python Kodi Hulp Code:


Wat zit er in:
- erdplugintools.py (Python unit met allerlei help functies, gebruik deze unit in mijn eigen kodi video addons. Zo zitten er functies in voor instellingen lezen/schrijven uit de settings.xml, en uit settings.xml van andere addons, functie voor openen van instellingen dialog, een simpele HTTP GET wrapper die JSON object terug geeft, afspelen van resolved url, en allerlei dialogs. Deze unit is dus erg handig om zelf heel makkelijk te beginnen met maken van Kodi Video Addons).
Interesting ? Ga ik zeker eens naar kijken. Bedankt voor het delen kerel. ?
 
Kleine update gedaan - heb in de eerste zipfile (php codes) een extra unit bij gezet:
- filtered_m3u.php
Deze is gebruikt als voorbeeld voor iemand, om te laten zien hoe te werken met de parser - hierbij doe ik ook een simpele filter over de array om alle vod van de live te scheiden. leuk als start voor iemand die er mee aan de slag wilt.

Ik wil tevens - dit is een super basic router, en er zijn veel uitgebreidere router classes - maar deze router class is direct te gebruiken, zonder al teveel gedoe kan je er al mee aan de slag - en het werken ermee is enorm simpel. In de zip zitten een paar bestanden:
- index.php (Hier maak ik de router class aan, en kan je het uitlezen van de routes zien)
- .htaccess (Apache HTACCESS bestand, heb je nodig om url routing te kunnen gebruiken op apache)
- router.php (Deze staat in de map common, en dit is de router class)

Voor degene die niet weten wat een PHP router is -> een router gebruik je voor "mooie urls" te maken zoals bv bij wordpress. Dus in plaats van http://demo.com/index.php?username=user&password=pass schrijf je de url zo http://demo.com/index/user/pass
Dit is heel handig als je bijvoorbeeld een kleine api wilt opzetten, of voor je website mooie url's wilt - ook kan je op deze manier de url gelijk houden terwijl je de scripts op de achtergrond compleet veranderd.
 
Laatst bewerkt:
Vandaag nog wat gesleuteld aan mijn eigen api - en hierbij een paar dingen gemaakt om STRM files + NFO bestanden te maken voor iptv vod. Zo kan ik ineens alle video on demand downloaden als STRM bestanden compleet met gescrape'te data van tmdb/imdb/tvdb. Omdat ik alle informatie al klaar zet in de NFO, hoeft kodi niet nog eens te scrapen en is importeren 10x sneller - en belangrijker - juist.


- movie_nfo.php (Simpele class op basis van xmlWriter class, om een nfo mee op te stellen voor films - dus niet voor series, daar werk ik nog aan)
- strm_zip_package.php (Simpele class om zipFile class waarmee je strm files en nfo bestanden kan wegschrijven in de zip, en ineens als download kan pushen. Je kan gewoon een film/file-name opgeven - en de content van de STRM en NFO uit een variable wat het enorm flexibel en snel maakt omdat je niks op de schijf hoeft te zetten)

Ik heb er niet de code bij gezet voor het extraheren van info uit de XC api, dit is iets dat je zelf kan doen - ik haal deze info uit mijn eigen api, welke ik sync met de XC api - maar je zou ook de informatie kunnen opvragen uit de XC api - door alle vod laten loopen, en daar in combinatie met tmdb/imdb scraper de informatie laten aanvullen in de NFO.
 
  • Like
Reacties: paulcrow
Hallo. Kan iemand de php_m3u_tools.zip-bestanden delen?? Kan niet downloaden. Foutmelding 404.