Update dsmart.com.tr guide.

Test:

```sh
npm test --- dsmart.com.tr

> test
> run-script-os dsmart.com.tr

> test:win32
> SET "TZ=Pacific/Nauru" && npx jest --runInBand dsmart.com.tr

 PASS  sites/dsmart.com.tr/dsmart.com.tr.test.js
  √ can generate valid url (6 ms)
  √ can parse response (14 ms)
  √ can handle empty guide (2 ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        0.828 s, estimated 1 s
Ran all test suites matching /dsmart.com.tr/i.
```

Grab:

```sh
npm run grab --- --site=dsmart.com.tr

> grab
> npx tsx scripts/commands/epg/grab.ts --site=dsmart.com.tr

starting...
config:
  output: guide.xml
  maxConnections: 1
  gzip: false
  site: dsmart.com.tr
loading channels...
  found 104 channel(s)
run #1:
  [1/208] dsmart.com.tr (tr) - 5d25dbe5cfef0b5761a051db - Jan 13, 2025 (38 programs)
  [2/208] dsmart.com.tr (tr) - 5d25dbe5cfef0b5761a051db - Jan 14, 2025 (36 programs)
  ...
  [207/208] dsmart.com.tr (tr) - 58d29bb0eefad3db9c6062b4 - Jan 14, 2025 (35 programs)
  [208/208] dsmart.com.tr (tr) - 58d29bb0eefad3db9c6062b4 - Jan 13, 2025 (41 programs)
  saving to "guide.xml"...
  done in 00h 00m 12s
```

Signed-off-by: Toha <tohenk@yahoo.com>
This commit is contained in:
Toha committed 2025-01-13 13:36:53 +07:00
1 parent 767aa12ef8
commit 8be65cc04f
7 files changed
+264 -326

No files matched your search

@@ -1 +0,0 @@
{"meta": {"code": 200, "message": "OK"}, "data": {"total": 203, "channels": [{"rating": 3, "ch_id": 805, "logo": "59f97253cfef0b75f4723ded", "ch_no": 1, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60"], "slug": "moviesmart-premium", "hd": true, "_id": "58d29bb0eefad3db9c606290", "order": 1, "channel_name": "MovieSmart Premium", "description": "", "schedule": []}, {"rating": 3, "ch_id": 808, "logo": "59f9725ccfef0b75f4723df0", "ch_no": 2, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "moviesmart-premium-2", "hd": true, "_id": "58d29bb0eefad3db9c606291", "order": 2, "channel_name": "MovieSmart Premium 2", "description": "", "schedule": []}, {"logo": "", "ch_no": 3, "genre": [2], "packages": ["58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a5f"], "slug": "sinema-tv", "_id": "5fe07d7acfef0b1593275751", "order": 3, "channel_name": "Sinema TV", "schedule": [{"actor": "", "year": "2017", "id": "623c24abcfef0b02d61003cd", "subject": "Bizi Ay\u0131ran Her \u015eey (All That Divides Us) T\u00fcr:Gerilim,Dram; Y\u00f6netmen:Thierry Klifa; Oyuncular:Catherine Deneuve,Diane Kruger,Nekfeu", "audio_subtitles": "", "start_date": "2022-12-30T22:00:00Z", "channel": "5fe07d7acfef0b1593275751", "description": "Iss\u0131zl\u0131\u011f\u0131n ortas\u0131nda yer alan orta s\u0131n\u0131f bir evde bir anne k\u0131z ya\u015famaktad\u0131r. \u00c7evrelerindeki ta\u015flar\u0131 insanlarla ya\u015fad\u0131klar\u0131 \u00e7at\u0131\u015fmalar, anne-k\u0131z\u0131n hayat\u0131n\u0131 olumsuz y\u00f6nde etkilemektedir. K\u0131z\u0131n\u0131n ans\u0131z\u0131n ortadan kaybolmas\u0131, bu \u00e7at\u0131\u015fmalar\u0131n seviyesini art\u0131racak ve anne, k\u0131z\u0131n\u0131 bulmak i\u00e7in her t\u00fcrl\u00fc yola ba\u015fvuracakt\u0131r. ", "director": "", "end_date": "2022-12-30T23:45:00Z", "genre": "sinema/genel", "program_name": "Bizi Ay\u0131ran Her \u015eey", "day": "2023-01-15T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "63aff2b8cfef0b02d2549811", "duration": "1:45:00"}, {"actor": "", "year": "2020", "id": "636003eccfef0b02d2375788", "subject": "Pixie (Pixie) T\u00fcr:Komedi,Su\u00e7,Gerilim; Y\u00f6netmen:Barnaby Thompson; Oyuncular:Olivia Cooke,Ben Hardy,Daryl McCormack", "audio_subtitles": "", "start_date": "2022-12-30T23:45:00Z", "channel": "5fe07d7acfef0b1593275751", "description": "Annesinin intikam\u0131n\u0131 almak isteyen Pixie, dahiyane bir soygun planlar. Fakat i\u015fler planlad\u0131\u011f\u0131 gibi gitmeyince kendini \u0130rlanda\u2019n\u0131n vah\u015fi gangsterleri taraf\u0131ndan kovalanan iki adamla birlikte ka\u00e7arken bulur. ", "director": "", "end_date": "2022-12-31T01:30:00Z", "genre": "sinema/genel", "program_name": "Pixie", "day": "2023-01-15T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "63aff2b8cfef0b02d2549812", "duration": "1:45:00"}, {"actor": "", "year": "2020", "id": "623c24abcfef0b02d6100357", "subject": "K\u00fc\u00e7\u00fck Bal\u0131k (Little Fish (Spwa)) T\u00fcr:Romantik,Bilim-Kurgu,Dram; Y\u00f6netmen:Chad Hartigan; Oyuncular:Olivia Cooke,Jack O'Connell,Soko", "audio_subtitles": "", "start_date": "2022-12-31T01:30:00Z", "channel": "5fe07d7acfef0b1593275751", "description": "D\u00fcnya \u00fczerinde bir salg\u0131n patlak verir ve en b\u00fcy\u00fck belirtisi haf\u0131za kayb\u0131d\u0131r. Yeni evli \u00e7ift Emma ve Jude kendilerini bu d\u00fcnyan\u0131n i\u00e7inde bulurlar. \u00c7ok ge\u00e7meden korktuklar\u0131 ba\u015flar\u0131na gelir ve Jude hastal\u0131\u011fa yakalan\u0131r. Gen\u00e7 \u00e7ift, ili\u015fkilerine dair an\u0131lar\u0131n\u0131 kaybetmemek i\u00e7in her \u015feyi yapmaya haz\u0131rd\u0131r.", "director": "", "end_date": "2022-12-31T03:30:00Z", "genre": "sinema/bilim-kurgu", "program_name": "K\u00fc\u00e7\u00fck Bal\u0131k", "day": "2023-01-15T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "63aff2b8cfef0b02d2549813", "duration": "2:00:00"}, {"actor": "", "year": "2020", "id": "6386fa91cfef0b02d24439a3", "subject": "Hayat\u0131n Yollar\u0131 (The Roads Not Taken) T\u00fcr:Dram; Y\u00f6netmen:Sally Potter; Oyuncular:Javier Bardem,Elle Fanning,Salma Hayek", "audio_subtitles": "", "start_date": "2022-12-31T03:30:00Z", "channel": "5fe07d7acfef0b1593275751", "description": "New York\u2019ta hayatlar\u0131n\u0131 s\u00fcrd\u00fcren baba Leo ve k\u0131z\u0131 Molly, Leo\u2019nun mental rahats\u0131zl\u0131\u011f\u0131ndan dolay\u0131 sorunlar ya\u015famaya ba\u015flar. Leo\u2019nun kafas\u0131n\u0131n i\u00e7inde ya\u015fad\u0131\u011f\u0131 farkl\u0131 paralel hayatlar yava\u015f yava\u015f g\u00fcn y\u00fcz\u00fcne \u00e7\u0131kmaya ba\u015flay\u0131nca, insanlardan kopmaya ve kendi ya\u015fam\u0131n\u0131 idame ettiremeyecek d\u00fczeyde ruhsal ve fiziksel de\u011fi\u015fimler ge\u00e7irmeye ba\u015flar. ", "diLine truncated
@@ -0,0 +1 @@
{"meta": {"code": 200, "message": "OK"}, "data": {"total": 218, "channels": [{"rating": 3, "ch_id": 805, "logo": "66fd23e8cfef0b37446b86fc", "ch_no": 1, "is_hd": true, "genre": [1, 11], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a63", "58cfc9c7e138237a591f9a64", "5dfcdac0cfef0b201d22ad58", "58e5e19be1382365ad190dc3", "58cfc9c7e138237a591f9a67", "58cfc9c7e138237a591f9a66", "58cfc9c7e138237a591f9a65"], "slug": "teknofest", "hd": true, "_id": "58d29bb0eefad3db9c606290", "order": 1, "channel_name": "Teknofest", "description": "", "schedule": []}]}}
@@ -0,0 +1 @@
{"meta": {"code": 200, "message": "OK"}, "data": {"total": 218, "channels": [{"logo": "", "ch_no": 11, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-1001", "_id": "5fe07f5dcfef0b1593275822", "order": 11, "channel_name": "Sinema TV 1001", "schedule": [{"actor": "", "year": "1976", "id": "605b8052cfef0b159363947a", "subject": "Taksi \u015eof\u00f6r\u00fc (Taxi Driver) T\u00fcr:Dram; Y\u00f6netmen:Martin Scorsese; Oyuncular:Robert De Niro,Harvey Keitel,Jodie Foster", "audio_subtitles": "", "start_date": "2024-12-26T21:30:00Z", "channel": "5fe07f5dcfef0b1593275822", "description": "Vietnam sava\u015f\u0131n\u0131n izlerinin etkisindeki bir asker ve New York sokaklar\u0131. Travis Bickle, geceleri taksi \u015fof\u00f6rl\u00fc\u011f\u00fc yapt\u0131\u011f\u0131 New York\u2019ta bir yandan da g\u00fcndelik ya\u015fama ayak uydurmaya \u00e7al\u0131\u015f\u0131r. \u00c7\u00fcr\u00fcmeye y\u00fcz tutmu\u015f bir topluma kar\u015f\u0131 tutulan bir ayna niteli\u011findeki film, y\u00f6netmen Martin Scorsese\u2019nin kariyerinin en \u00f6nemli filmlerinden biri olarak kabul g\u00f6r\u00fcr.", "director": "", "end_date": "2024-12-26T23:30:00Z", "genre": "sinema/genel", "program_name": "Taksi \u015eof\u00f6r\u00fc", "day": "2025-01-12T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "676e9c01cfef0b3744952d5a", "duration": "2:00:00"}, {"actor": "", "year": "2012", "id": "623c24b6cfef0b02d61007f6", "subject": "G\u00fcnah Ke\u00e7isi (The Scapegoat) T\u00fcr:Dram; Y\u00f6netmen:Charles Sturridge; Oyuncular:Andrew Scott,Matthew Rhys,Jodhi May", "audio_subtitles": "", "start_date": "2024-12-26T23:30:00Z", "channel": "5fe07f5dcfef0b1593275822", "description": "Sene 1952\u2026 John Standing (Matthew Rhys), kendisine t\u0131pat\u0131p benzeyen Johnny Spence (Matthew Rhys) ile kar\u015f\u0131la\u015f\u0131r. \u0130kisi de o gece sarho\u015f olur fakat John sabah uyand\u0131\u011f\u0131nda Johnny onun kimli\u011fini ve t\u00fcm di\u011fer e\u015fyalar\u0131n\u0131 al\u0131p ka\u00e7m\u0131\u015ft\u0131r. Johnny\u2019den ona kalan eski bir ev, uyu\u015fturucu ba\u011f\u0131ml\u0131s\u0131 bir anne, gidi\u015fat\u0131 k\u00f6t\u00fc bir evlilik ve darmada\u011f\u0131n bir ailedir. John zamanla yeni hayat\u0131na al\u0131\u015f\u0131r ve her \u015feyi yoluna koyar.", "director": "", "end_date": "2024-12-27T01:30:00Z", "genre": "sinema/genel", "program_name": "G\u00fcnah Ke\u00e7isi", "day": "2025-01-12T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "676e9c01cfef0b3744952d5b", "duration": "2:00:00"}, {"actor": "", "year": "2015", "id": "600e77ffcfef0b159342371f", "subject": "Son Efsane (The Program) T\u00fcr:Dram,Biyografi,Spor; Y\u00f6netmen:Stephen Frears; Oyuncular:Chris O'Dowd,Brio Films,Dustin Hoffman", "audio_subtitles": "", "start_date": "2024-12-27T01:30:00Z", "channel": "5fe07f5dcfef0b1593275822", "description": "\u0130rlandal\u0131 bir spor yazar\u0131 olan David Walsh, bisiklet\u00e7i Lance Armstrong'un Tour de France s\u0131ras\u0131nda doping yapt\u0131\u011f\u0131ndan \u015f\u00fcphelenir ve konu hakk\u0131nda kan\u0131t toplamaya ba\u015flar. Ge\u00e7irdi\u011fi kanser rahats\u0131zl\u0131\u011f\u0131ndan sonra 1999 y\u0131l\u0131nda parkurlara her zamankinden daha da b\u00fcy\u00fck bir kararl\u0131l\u0131kla geri d\u00f6nen Armstrong'la ilgili a\u00e7\u0131lan soru\u015fturmalar sporcunun kupalar\u0131n\u0131n neredeyse hepsinin elinden al\u0131nmas\u0131yla sonu\u00e7lanm\u0131\u015ft\u0131.", "director": "", "end_date": "2024-12-27T03:30:00Z", "genre": "sinema/genel", "program_name": "Son Efsane", "day": "2025-01-12T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "676e9c01cfef0b3744952d5c", "duration": "2:00:00"}, {"actor": "", "year": "2016", "id": "64759f7fcfef0b02d2986297", "subject": "Kundak\u00e7\u0131 (Pyromaniac) T\u00fcr:Dram; Y\u00f6netmen:Erik Skjoldbj\u00e6rg; Oyuncular:Trond Nilssen,Per Frisch,Liv Bernhoft Osa", "audio_subtitles": "", "start_date": "2024-12-27T03:30:00Z", "channel": "5fe07f5dcfef0b1593275822", "description": "Film, 1978 y\u0131l\u0131nda Norve\u00e7\u2019te ya\u015fanan ger\u00e7ek olaylardan uyarlanm\u0131\u015ft\u0131r\u2026 19 ya\u015f\u0131ndaki Dag, askerden d\u00f6nm\u00fc\u015f ve tekrar ailesi ile birlikte ya\u015famaya ba\u015flam\u0131\u015ft\u0131r. Dag, bir itfaiyeci olan babas\u0131na g\u00f6n\u00fcll\u00fc olarak yard\u0131m etmeye ba\u015flar. Ancak \u00e7ok ge\u00e7meden, her g\u00fcn \u00e7evrede aniden ba\u015flayan yang\u0131nlar \u00e7\u0131kar. Bu olaylar, ortal\u0131kta bir kundak\u00e7\u0131n\u0131n dola\u015ft\u0131\u011f\u0131n\u0131n i\u015fareti gibidir\u2026", "director": "", "end_date": "2024-12-27T05:15:00Z", "genre": "sinema/genel", "program_name": "Kundak\u00e7\u0131", "day": "2025-01-12T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "676e9c01cfef0b3744952d5d", "duration": "1:45:00"}, {"actor": "", "year": "201Line truncated
+1 -1
View File
@@ -1 +1 @@
{"meta": {"code": 200, "message": "OK"}, "data": {"total": 203, "channels": [{"rating": 3, "ch_id": 805, "logo": "59f97253cfef0b75f4723ded", "ch_no": 1, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60"], "slug": "moviesmart-premium", "hd": true, "_id": "58d29bb0eefad3db9c606290", "order": 1, "channel_name": "MovieSmart Premium", "description": "", "schedule": []}, {"rating": 3, "ch_id": 808, "logo": "59f9725ccfef0b75f4723df0", "ch_no": 2, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "moviesmart-premium-2", "hd": true, "_id": "58d29bb0eefad3db9c606291", "order": 2, "channel_name": "MovieSmart Premium 2", "description": "", "schedule": []}, {"logo": "", "ch_no": 3, "genre": [2], "packages": ["58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a5f"], "slug": "sinema-tv", "_id": "5fe07d7acfef0b1593275751", "order": 3, "channel_name": "Sinema TV", "schedule": []}, {"logo": "", "ch_no": 4, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-2", "_id": "5fe07d9fcfef0b1593275754", "order": 4, "channel_name": "Sinema TV 2", "schedule": []}, {"logo": "", "ch_no": 5, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-aksiyon", "_id": "5fe07dd5cfef0b1593275758", "order": 5, "channel_name": "Sinema TV Aksiyon", "schedule": []}, {"logo": "", "ch_no": 6, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-aksiyon-2", "_id": "5fe07e23cfef0b15932757a1", "order": 6, "channel_name": "Sinema TV Aksiyon 2", "schedule": []}, {"logo": "", "ch_no": 7, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-aile", "_id": "5fe07e42cfef0b15932757a3", "order": 7, "channel_name": "Sinema TV Aile", "schedule": []}, {"logo": "", "ch_no": 8, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-aile-2", "_id": "5fe07eabcfef0b15932757a6", "order": 8, "channel_name": "Sinema TV Aile 2", "schedule": []}, {"logo": "", "ch_no": 9, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-comedy", "_id": "5fe07f29cfef0b1593275800", "order": 9, "channel_name": "Sinema TV Comedy", "schedule": []}, {"logo": "", "ch_no": 10, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-comedy-2", "_id": "5fe07f45cfef0b159327581f", "order": 10, "channel_name": "Sinema TV Comedy 2", "schedule": []}, {"logo": "", "ch_no": 11, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-1001", "_id": "5fe07f5dcfef0b1593275822", "order": 11, "channel_name": "Sinema TV 1001", "schedule": []}, {"logo": "", "ch_no": 12, "genre": [2], "packages": ["58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "sinema-tv-1002", "_id": "5fe07f72cfef0b159327585a", "order": 12, "channel_name": "Sinema TV 1002", "schedule": []}, {"rating": 3, "ch_id": 879, "logo": "59f19761cfef0b221f7da7e6", "ch_no": 13, "is_hd": false, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a60", "58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f"], "slug": "filmbox", "hd": true, "_id": "58d29bb0eefad3db9c6062ba", "order": 13, "channel_name": "FilmBox", "description": "", "schedule": []}, {"rating": 3, "ch_id": 831, "logo": "59f97297cfef0b75f4723f91", "ch_no": 14, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62"], "slug": "moviesmart-classic", "hd": true, "_id": "58d29bb0eefad3db9c60629a", "order": 14, "channel_name": "MovieSmart Classic", "description": "", "schedule": []}, {"rating": 3, "ch_id": 830, "logo": "59f972a1cfef0b75f4723f94", "ch_no": 15, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60"], "slug": "moviesmart-turk", "hd": true, "_id": "58d29bb0eefad3db9c606299", "order": 15, "channel_name": "MovieSmart T\u00fcrk", "description": "", "schedule": []}, {"rating": 3, "ch_id": 692, "logo": "59f972a9cfef0b75f4723f97", "ch_no": 16, "is_hd": true, "genre": [1, 4], "packages": ["58cfc9c7e138237a591f9a61",Line truncated
{"meta": {"code": 200, "message": "OK"}, "data": {"total": 218, "channels": []}}
+104 -210
View File
@@ -1,213 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="dsmart.com.tr" lang="en" xmltv_id="BBCNewsEurope.uk" site_id="50#58d29bb0eefad3db9c6062c6">BBC World News</channel>
<channel site="dsmart.com.tr" lang="en" xmltv_id="CNNInternationalEurope.us" site_id="49#58d29bb0eefad3db9c6062b8">CNN International</channel>
<channel site="dsmart.com.tr" lang="en" xmltv_id="NBATV.us" site_id="69#58d29bb0eefad3db9c60626e">NBA TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="102#58d29bb0eefad3db9c60623c">NR1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="104#58d29bb0eefad3db9c606245">NR1 Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="105#5c7fda31cfef0b6cb7a578af">Türkçe Müzik</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="106#5c7fda93cfef0b6cb7a5793b">Turkish Silk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="111#58d29bb0eefad3db9c6062b9">Cartoonito</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="112#58d29bb0eefad3db9c6062b7">Baby TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="115#58d29bb0eefad3db9c6062b6">Da Vinci Learning</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="116#6540d968cfef0b02d2dbb177">Moonbug</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="117#5fedddcecfef0b159330996e">Disney Junior</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="123#5e75c6f5cfef0b15938bc9b9">TRT EBA TV İlkokul</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="124#5e75c923cfef0b15938bc9cc">TRT EBA TV Ortaokul</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="125#5e75c9d1cfef0b15938bc9d1">TRT EBA TV Lise</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="126#59dca805cfef0b4d80a47c2c">Vizyon Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="131#59dca8e2cfef0b4d80a47c34">RTV 23</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="135#5df20d44cfef0b19df84668e">Bahartürk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="139#59dcaaaccfef0b4d80a47d7e">Çifçi TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="150#59dcbc42cfef0b4d80a49628">Kanal 16</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="151#5dea10f3cfef0b49bf6de6fa">Kanal 35</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="158#59dcbd54cfef0b4d80a4963a">Uzay TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="159#59dcbd97cfef0b4d80a4963e">Kanal 28</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="163#6163ee3dcfef0b1593d572b0">Flash Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="166#5de50035cfef0b49bf6ba4e7">Ege Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="167#59dcbe60cfef0b4d80a4964a">KKTC Kanal T</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="168#59dcbe7dcfef0b4d80a4964c">Yeni Kocaeli TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="175#59dcbf24cfef0b4d80a49652">Saudi Quran TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="176#59dcbf4acfef0b4d80a49654">Saudi Sunnah TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="181#58d29bb0eefad3db9c60624f">NHK World English</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="198#58d29bb0eefad3db9c606247">ATV Turkiye SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="206#5d25dbe5cfef0b5761a051db">Test</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="207#5e7865eacfef0b15938c1bb0">TRT EBA TV İlkokul SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="208#5e78662ecfef0b15938c1c03">TRT EBA TV Ortaokul SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="209#5e7866dfcfef0b15938c1c1b">TRT EBA TV Lise SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="210#618bd2bbcfef0b1593e5d42c">45&apos;lik</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="60#61a408d7cfef0b1593ed2812">History Channel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="63#64edfc67cfef0b02d2c038c5">Tarih Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="64#59dca29fcfef0b4d80a47a61">Nature Escape</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="67#59dca3b2cfef0b4d80a47b77">Fashion TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="87#63ecd91acfef0b02d2687aed">SZC</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="89#6486edd4cfef0b02d29f163e">Cadde TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="90#6481bce5cfef0b02d29e23d1">Cine 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="93#58d29bb0eefad3db9c606231">TRT 3 Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="99#58d29bb0eefad3db9c6062c5">Dream Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="24Kitchen.tr" site_id="53#58d29bb0eefad3db9c60627b">24Kitchen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="24TV.tr" site_id="33#58d29bb0eefad3db9c60622e">24</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="360.tr" site_id="42#58d29bb0eefad3db9c606236">360</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="A2TV.tr" site_id="165#59dcbe14cfef0b4d80a49646">a2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AgroTV.tr" site_id="140#5fa3d0a9cfef0b15930f7742">Agro Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AHaber.tr" site_id="199#58d29bb0eefad3db9c60625d">A Haber SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AHaber.tr" site_id="34#58d29bb0eefad3db9c60625e">a Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AkitTV.tr" site_id="91#59dca630cfef0b4d80a47b82">Akit TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AlJazeera.qa" site_id="184#59dcc114cfef0b4d80a49a0a">Al Jazeera Arabic</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AlJazeeraEnglish.qa" site_id="185#59dcc133cfef0b4d80a49a0c">Al Jazeera English</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AltasTV.tr" site_id="153#59dcbc79cfef0b4d80a4962c">Altaş TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ANews.tr" site_id="177#59638e5fcfef0b43f0fd31b5">a News</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="APara.tr" site_id="51#5b9fb1eecfef0b35341b7eb7">A Para</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ASpor.tr" site_id="204#58d29bb0eefad3db9c6062a3">A Spor SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ASpor.tr" site_id="77#58d29bb0eefad3db9c6062b2">a Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ASTV.tr" site_id="147#59dcbbf3cfef0b4d80a49622">AS TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ATV.tr" site_id="24#58d29bb0eefad3db9c60625f">ATV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BBCEarth.tr" site_id="55#58d29bb0eefad3db9c6062bc">BBC Earth</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BBNTurk.tr" site_id="37#5fd318b4cfef0b15932230d0">BBN Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BenguturkTV.tr" site_id="129#59cb8a67cfef0b15ae760a92">Bengütürk TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BeyazTV.tr" site_id="39#58d29bb0eefad3db9c606298">Beyaz TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BeykentTV.tr" site_id="154#59dcbc90cfef0b4d80a4962e">Beykent TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BloombergHT.tr" site_id="43#58d29bb0eefad3db9c60623e">Bloomberg HT</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BRT1.cy" site_id="169#59dcbe9acfef0b4d80a4964e">BRT 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CartoonNetwork.tr" site_id="109#58d29bb0eefad3db9c6062c8">Cartoon Network</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CemTV.tr" site_id="152#5d2dde88cfef0b39db6ab393">Cem Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CNNTurk.tr" site_id="205#59dca1f3cfef0b4d80a47a5f">CNN Türk SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CNNTurk.tr" site_id="29#5f2fc688cfef0b1593e08b76">CNN TÜRK</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CocukSmart.tr" site_id="110#58d29bb0eefad3db9c6062b5">Çocuk Smart</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiscoveryChannel.tr" site_id="58#58d29bb0eefad3db9c606248">Discovery</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiscoveryScience.tr" site_id="59#58d29bb0eefad3db9c60628e">Discovery Science</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DisneyChannel.tr" site_id="118#58d29bb0eefad3db9c60626c">Disney Channel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiyanetTV.tr" site_id="186#58d29bb0eefad3db9c606262">Diyanet Tv Sd</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiyanetTV.tr" site_id="94#5ac73ebbcfef0b34db533a95">Diyanet Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiziSmartMax.tr" site_id="19#58d29bb0eefad3db9c606278">Dizi Smart Max</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiziSmartPremium.tr" site_id="16#58d29bb0eefad3db9c60625a">Dizi Smart Premium</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DMAX.tr" site_id="197#58d29bb0eefad3db9c606246">DMAX SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DMAX.tr" site_id="45#58d29bb0eefad3db9c606282">DMAX</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DocuBox.nl" site_id="57#58d29bb0eefad3db9c6062be">DocuScreen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DreamTurk.tr" site_id="100#58d29bb0eefad3db9c60628d">Dream Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Ekoturk.tr" site_id="47#5c6e8e0ecfef0b613d9ff782">Ekotürk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ESTV.tr" site_id="160#59dcbdaecfef0b4d80a49640">Es TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="EuroD.tr" site_id="179#59dcbfdccfef0b4d80a4974a">Euro D</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Eurosport1.fr" site_id="72#58d29bb0eefad3db9c6062aa">Eurosport</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Eurosport2.fr" site_id="73#58d29bb0eefad3db9c606281">Eurosport 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="EuroStar.tr" site_id="180#59dcc000cfef0b4d80a4974d">Euro Star</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FastFunBox.nl" site_id="68#58d29bb0eefad3db9c6062bf">GameScreen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FBTV.tr" site_id="80#58d29bb0eefad3db9c606235">FB TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FightBox.nl" site_id="78#58d29bb0eefad3db9c6062b4">FightScreen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FilmBox.tr" site_id="13#58d29bb0eefad3db9c6062ba">FilmBox</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Fox.tr" site_id="195#58d29bb0eefad3db9c60623b">FOX SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Fox.tr" site_id="28#58d29bb0eefad3db9c6062a0">FOX</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FoxCrime.tr" site_id="18#58d29bb0eefad3db9c606268">FOXCRIME</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FX.us" site_id="17#58d29bb0eefad3db9c606269">FX</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HaberGlobal.tr" site_id="41#5bac7dedcfef0b02fac035fd">Haber Global</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HaberturkTV.tr" site_id="192#58d29bb0eefad3db9c606232">Haberturk SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HaberturkTV.tr" site_id="32#58d29bb0eefad3db9c60629d">Haber Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HalkTV.tr" site_id="161#58d29bb0eefad3db9c606288">Halk TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="InsightTV.nl" site_id="66#5dfc6dc2cfef0b201d222aa0">Insight TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KadirgaTV.tr" site_id="128#59dca8b8cfef0b4d80a47c32">Kadırga TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal26.tr" site_id="148#59dcbc08cfef0b4d80a49624">Kanal 26</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal3.tr" site_id="120#59dca70bcfef0b4d80a47b86">Kanal 3</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal42.tr" site_id="141#59dcab38cfef0b4d80a47e24">Kanal 42</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal7.tr" site_id="194#58d29bb0eefad3db9c606239">Kanal 7 SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal7.tr" site_id="26#58d29bb0eefad3db9c60629c">Kanal 7</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalB.tr" site_id="85#58d29bb0eefad3db9c606240">Kanal B</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalD.tr" site_id="187#58d29bb0eefad3db9c60622b">Kanal D SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalD.tr" site_id="21#58d29bb0eefad3db9c606258">Kanal D</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalFirat.tr" site_id="134#59dca9ddcfef0b4d80a47c3c">Kanal Fırat</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalV.tr" site_id="137#59dcaa71cfef0b4d80a47c42">Kanal V</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KardelenTV.tr" site_id="136#5d44406ecfef0b71b1d3885b">Kardelen Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KoyTV.tr" site_id="138#59dcaa91cfef0b4d80a47d7c">Köy TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KozaTV.tr" site_id="149#59dcbc2fcfef0b4d80a49626">Koza TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KRT.tr" site_id="127#59dca881cfef0b4d80a47c30">KRT</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="LiderHaber.tr" site_id="97#61517908cfef0b1593cd5f9e">Lider Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="LineTV.tr" site_id="130#59b7c231cfef0b07291c2aa2">Line TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="LoveNature.ca" site_id="70#5dfc9faacfef0b201d2246b5">Love Nature</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="LuysTV.tr" site_id="133#61605578cfef0b1593d4a81f">Luys Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MaviKaradenizTV.tr" site_id="155#59dcbc9fcfef0b4d80a49630">Mavi Karadeniz</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MilyonTV.tr" site_id="121#5c9889b0cfef0b4cffc475b4">Milyon</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MinikaCocuk.tr" site_id="119#58d29bb0eefad3db9c60626d">Minika Çocuk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MinikaGo.tr" site_id="113#58d29bb0eefad3db9c606257">Minika GO</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartClassic.tr" site_id="14#58d29bb0eefad3db9c60629a">MovieSmart Classic</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartPremium.tr" site_id="1#58d29bb0eefad3db9c606290">MovieSmart Premium</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartPremium2.tr" site_id="2#58d29bb0eefad3db9c606291">MovieSmart Premium 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartTurk.tr" site_id="15#58d29bb0eefad3db9c606299">MovieSmart Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NationalGeographic.tr" site_id="61#58d29bb0eefad3db9c6062a4">National Geographic</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NationalGeographicWild.tr" site_id="62#58d29bb0eefad3db9c6062a5">National Geographic WILD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NTV.tr" site_id="30#58d29bb0eefad3db9c60623a">NTV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="On4TV.tr" site_id="145#5dde8c07cfef0b2f64b09f0e">On4</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="PowerTurkTV.tr" site_id="107#58d29bb0eefad3db9c6062ac">Power Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="PowerTV.tr" site_id="108#58d29bb0eefad3db9c6062b3">Power TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="RTRPlaneta.ru" site_id="183#5d25b34fcfef0b75bced8a6e">Rtr Planeta</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="RumeliTV.tr" site_id="157#5d75f3bacfef0b29f5225f0e">Rumeli Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Russia24.ru" site_id="182#59dcc0d0cfef0b4d80a498cf">Russia-24</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sat7Turk.cy" site_id="132#59dca98dcfef0b4d80a47c3a">Sat 7 Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ShowMax.tr" site_id="88#59dca5fdcfef0b4d80a47b80">ShowMax</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ShowTV.tr" site_id="188#58d29bb0eefad3db9c60622c">Show TV SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ShowTV.tr" site_id="22#58d29bb0eefad3db9c60629b">Show TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema1001.tr" site_id="11#5fe07f5dcfef0b1593275822">Sinema TV 1001</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema1002.tr" site_id="12#5fe07f72cfef0b159327585a">Sinema TV 1002</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema2.tr" site_id="4#5fe07d9fcfef0b1593275754">Sinema TV 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAile.tr" site_id="7#5fe07e42cfef0b15932757a3">Sinema TV Aile</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAile2.tr" site_id="8#5fe07eabcfef0b15932757a6">Sinema TV Aile 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAksiyon.tr" site_id="5#5fe07dd5cfef0b1593275758">Sinema TV Aksiyon</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAksiyon2.tr" site_id="6#5fe07e23cfef0b15932757a1">Sinema TV Aksiyon 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaKomedi.tr" site_id="9#5fe07f29cfef0b1593275800">Sinema TV Comedy</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaKomedi2.tr" site_id="10#5fe07f45cfef0b159327581f">Sinema TV Comedy 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaTV.tr" site_id="3#5fe07d7acfef0b1593275751">Sinema TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SporSmart.tr" site_id="74#58d29bb0eefad3db9c60628a">Spor Smart</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SporSmart2.tr" site_id="79#5fcb6bd2cfef0b15931fcdf8">SPOR SMART 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SportsTV.tr" site_id="81#58d29bb0eefad3db9c606296">Sports Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SSport.tr" site_id="75#5ff5d18bcfef0b1593364e28">S Sport</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SSport2.tr" site_id="76#5ff5d2c8cfef0b15933651c7">S Sport 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="StarTV.tr" site_id="189#58d29bb0eefad3db9c60622d">STAR TV SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="StarTV.tr" site_id="23#58d29bb0eefad3db9c606259">Star</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TatlisesTV.tr" site_id="103#644a774dcfef0b02d28abccb">Tatlıses Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TAYTV.tr" site_id="71#59dca4d8cfef0b4d80a47b7a">TAY TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Tele1.tr" site_id="162#59dcbddccfef0b4d80a49642">Tele 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TempoTV.tr" site_id="144#61f935e5cfef0b1593123810">Tempo Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Teve2.tr" site_id="20#58d29bb0eefad3db9c6062a1">teve2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Teve2.tr" site_id="203#58d29bb0eefad3db9c60627a">teve2 SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TGRTBelgesel.tr" site_id="122#59dca751cfef0b4d80a47b88">TGRT Belgesel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TGRTEU.tr" site_id="178#59dcbfb6cfef0b4d80a49748">TGRT EU</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TGRTHaber.tr" site_id="44#58d29bb0eefad3db9c60623d">TGRT Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Tivi6.tr" site_id="142#618bd28fcfef0b1593e5d42a">Tivi6</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TLC.tr" site_id="35#58d29bb0eefad3db9c606238">TLC</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TMB.tr" site_id="101#58d29bb0eefad3db9c606272">TMB</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT1.tr" site_id="190#58d29bb0eefad3db9c60622f">TRT 1 SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT1.tr" site_id="25#58d29bb0eefad3db9c606274">TRT 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT2.tr" site_id="95#58d29bb0eefad3db9c606263">trt 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT4K.tr" site_id="174#59dcbee1cfef0b4d80a49650">TRT 4K</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTArabi.tr" site_id="173#58d29bb0eefad3db9c606265">TRT Arabi</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTAvaz.tr" site_id="172#58d29bb0eefad3db9c60624b">TRT Avaz</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTBelgesel.tr" site_id="200#58d29bb0eefad3db9c606264">Trt Belgesel SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTBelgesel.tr" site_id="65#58d29bb0eefad3db9c6062a8">TRT Belgesel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTCocuk.tr" site_id="114#58d29bb0eefad3db9c606255">TRT Çocuk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTHaber.tr" site_id="191#58d29bb0eefad3db9c606230">TRT Haber SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTHaber.tr" site_id="31#58d29bb0eefad3db9c606289">TRT Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTKurdi.tr" site_id="171#58d29bb0eefad3db9c60624a">TRT Kurdi</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTMuzik.tr" site_id="98#58d29bb0eefad3db9c606266">TRT Müzik</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTSpor.tr" site_id="201#58d29bb0eefad3db9c606270">Trt Spor SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTSpor.tr" site_id="82#58d29bb0eefad3db9c6062a9">TRT Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTSporYildiz.tr" site_id="83#5da87214cfef0b4df9157780">Trt Spor Yıldız</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTTurk.tr" site_id="96#58d29bb0eefad3db9c60624c">TRT Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTWorld.tr" site_id="170#58d29bb0eefad3db9c6062cc">TRT World</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV100.tr" site_id="36#5ccfd6adcfef0b6021816941">Tv 100</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV4.tr" site_id="84#59dca577cfef0b4d80a47b7c">TV4</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV5.tr" site_id="92#5bf6b074cfef0b7351c27d14">Tv 5</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV52.tr" site_id="146#5db29993cfef0b4df918bc9e">Tv 52</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV8.tr" site_id="193#58d29bb0eefad3db9c606233">TV 8 SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV8.tr" site_id="27#58d29bb0eefad3db9c6062ae">TV8</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV85.tr" site_id="46#58d29bb0eefad3db9c6062cb">TV 8,5</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TVDen.tr" site_id="143#5975e329cfef0b50e2627904">TV Den</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TVNET.tr" site_id="202#58d29bb0eefad3db9c606276">Tvnet SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TVNET.tr" site_id="40#58d29bb0eefad3db9c60629e">TV Net</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UcanKusTV.tr" site_id="38#58d29bb0eefad3db9c6062b0">Uçankuş TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UlkeTV.tr" site_id="196#58d29bb0eefad3db9c606243">ULKE TV SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UlkeTV.tr" site_id="48#58d29bb0eefad3db9c60629f">Ülke TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UlusalKanal.tr" site_id="86#58d29bb0eefad3db9c606242">Ulusal TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UniversiteTV.tr" site_id="164#65142dbbcfef0b02d2cc14b7">Üniversite Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="VatanTV.tr" site_id="156#59dcbcb5cfef0b4d80a49632">Vatan TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="VavTV.tr" site_id="54#6071fb3bcfef0b159373a531">Vav Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ViasatHistory.tr" site_id="56#58d29bb0eefad3db9c6062bd">Viasat History</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="WomanTV.tr" site_id="52#61f934e2cfef0b1593123808">Woman TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="5d25dbe5cfef0b5761a051db">Test</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="58d29bb0eefad3db9c6062b4">CosmoSports</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="58d29bb0eefad3db9c6062ba">FilmScreen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="58d29bb0eefad3db9c6062bf">Azoomee</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="58d29bb0eefad3db9c606231">TRT 3 Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="58d29bb0eefad3db9c606247">ATV Turkiye SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="59dca29fcfef0b4d80a47a61">Nature Escape</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="61a408d7cfef0b1593ed2812">History Channel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="6540d968cfef0b02d2dbb177">Moonbug</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="66337391cfef0b02d78776c8">Ekol Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="66e7e5cdcfef0b374461c45b">Spor Çoklu Ekran</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="66e7e50dcfef0b374461c36e">Ulusal Çoklu Ekran</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="66e7e54ccfef0b374461c370">Haber Çoklu Ekran</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="" site_id="5e75c923cfef0b15938bc9cc">TRT EBA TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="24TV.tr" site_id="58d29bb0eefad3db9c60622e">24</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="360.tr" site_id="58d29bb0eefad3db9c606236">360</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="A2TV.tr" site_id="59dcbe14cfef0b4d80a49646">a2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="AHaber.tr" site_id="58d29bb0eefad3db9c60625e">a Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ANews.tr" site_id="59638e5fcfef0b43f0fd31b5">a News</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="APara.tr" site_id="5b9fb1eecfef0b35341b7eb7">A Para</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ASpor.tr" site_id="58d29bb0eefad3db9c6062b2">a Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ATV.tr" site_id="58d29bb0eefad3db9c60625f">ATV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BabyTV.fr" site_id="58d29bb0eefad3db9c6062b7">Baby TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BBCEarth.tr" site_id="58d29bb0eefad3db9c6062bc">BBC Earth</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BBCNewsEurope.uk" site_id="58d29bb0eefad3db9c6062c6">BBC World News</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BeyazTV.tr" site_id="58d29bb0eefad3db9c606298">Beyaz TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="BloombergHT.tr" site_id="58d29bb0eefad3db9c60623e">Bloomberg HT</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Cartoonito.uk" site_id="58d29bb0eefad3db9c6062b9">Cartoonito</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CartoonNetwork.tr" site_id="58d29bb0eefad3db9c6062c8">Cartoon Network</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CNBCEurope.uk" site_id="66630f98cfef0b02d797d815">CNBC-e</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CNNInternationalEurope.us" site_id="58d29bb0eefad3db9c6062b8">CNN International</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CNNTurk.tr" site_id="59dca1f3cfef0b4d80a47a5f">CNN Türk SD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="CocukSmart.tr" site_id="58d29bb0eefad3db9c6062b5">Çocuk Smart</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DaVinci.de" site_id="58d29bb0eefad3db9c6062b6">Da Vinci Learning</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiscoveryChannel.tr" site_id="58d29bb0eefad3db9c606248">Discovery</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DisneyJunior.tr" site_id="5fedddcecfef0b159330996e">Disney Junior</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiziSmartMax.tr" site_id="58d29bb0eefad3db9c606278">Dizi Smart Max</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DiziSmartPremium.tr" site_id="58d29bb0eefad3db9c60625a">Dizi Smart Premium</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DMAX.tr" site_id="58d29bb0eefad3db9c606282">DMAX</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DocuBox.nl" site_id="58d29bb0eefad3db9c6062be">DocuScreen</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DreamTurk.tr" site_id="58d29bb0eefad3db9c6062c5">Dream Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="DreamTurk.tr" site_id="58d29bb0eefad3db9c60628d">Dream Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Ekoturk.tr" site_id="5c6e8e0ecfef0b613d9ff782">Ekotürk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="EuroD.tr" site_id="59dcbfdccfef0b4d80a4974a">Euro D</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Eurosport1.tr" site_id="58d29bb0eefad3db9c6062aa">Eurosport</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Eurosport2.tr" site_id="58d29bb0eefad3db9c606281">Eurosport 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FashionTVEurope.fr" site_id="59dca3b2cfef0b4d80a47b77">Fashion TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="FX.us" site_id="58d29bb0eefad3db9c606269">FX</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HaberGlobal.tr" site_id="5bac7dedcfef0b02fac035fd">Haber Global</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HaberturkTV.tr" site_id="58d29bb0eefad3db9c60629d">Haber Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="HTSporTV.tr" site_id="66d839a0cfef0b37445c6db1">HT Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="InvestigationDiscoveryEurope.us" site_id="58d29bb0eefad3db9c60628e">Discovery ID</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Kanal7.tr" site_id="58d29bb0eefad3db9c60629c">Kanal 7</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="KanalD.tr" site_id="58d29bb0eefad3db9c606258">Kanal D</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="LoveNature.ca" site_id="5dfc9faacfef0b201d2246b5">Love Nature</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MinikaGo.tr" site_id="58d29bb0eefad3db9c606257">Minika GO</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartClassic.tr" site_id="58d29bb0eefad3db9c60629a">MovieSmart Classic</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="MovieSmartTurk.tr" site_id="58d29bb0eefad3db9c606299">MovieSmart Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NationalGeographic.tr" site_id="58d29bb0eefad3db9c6062a4">National Geographic</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NationalGeographicWild.tr" site_id="58d29bb0eefad3db9c6062a5">National Geographic WILD</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NBATV.us" site_id="58d29bb0eefad3db9c60626e">NBA TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NOWTV.tr" site_id="58d29bb0eefad3db9c6062a0">NOW</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="NTV.tr" site_id="58d29bb0eefad3db9c60623a">NTV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ShowTV.tr" site_id="58d29bb0eefad3db9c60629b">Show TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema2.tr" site_id="5fe07d9fcfef0b1593275754">Sinema TV 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema1001.tr" site_id="5fe07f5dcfef0b1593275822">Sinema TV 1001</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Sinema1002.tr" site_id="5fe07f72cfef0b159327585a">Sinema TV 1002</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAile2.tr" site_id="5fe07eabcfef0b15932757a6">Sinema TV Aile 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAile.tr" site_id="5fe07e42cfef0b15932757a3">Sinema TV Aile</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAksiyon2.tr" site_id="5fe07e23cfef0b15932757a1">Sinema TV Aksiyon 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaAksiyon.tr" site_id="5fe07dd5cfef0b1593275758">Sinema TV Aksiyon</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaKomedi2.tr" site_id="5fe07f45cfef0b159327581f">Sinema TV Comedy 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaKomedi.tr" site_id="5fe07f29cfef0b1593275800">Sinema TV Comedy</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SinemaTV.tr" site_id="5fe07d7acfef0b1593275751">Sinema TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SozcuTV.tr" site_id="63ecd91acfef0b02d2687aed">SZC</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SporSmart2.tr" site_id="5fcb6bd2cfef0b15931fcdf8">SPOR SMART 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="SporSmart.tr" site_id="58d29bb0eefad3db9c60628a">Spor Smart</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="StarTV.tr" site_id="58d29bb0eefad3db9c606259">Star</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TarihTV.tr" site_id="64edfc67cfef0b02d2c038c5">Tarih Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Tele1.tr" site_id="59dcbddccfef0b4d80a49642">Tele 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="Teve2.tr" site_id="58d29bb0eefad3db9c6062a1">teve2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TGRTHaber.tr" site_id="58d29bb0eefad3db9c60623d">TGRT Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TLC.tr" site_id="58d29bb0eefad3db9c606238">TLC</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TMB.tr" site_id="58d29bb0eefad3db9c606272">TMB</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT1.tr" site_id="58d29bb0eefad3db9c606274">TRT 1</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT2.tr" site_id="58d29bb0eefad3db9c606263">trt 2</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRT4K.tr" site_id="59dcbee1cfef0b4d80a49650">TRT 4K</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTAvaz.tr" site_id="58d29bb0eefad3db9c60624b">TRT Avaz</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTBelgesel.tr" site_id="58d29bb0eefad3db9c6062a8">TRT Belgesel</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTCocuk.tr" site_id="58d29bb0eefad3db9c606255">TRT Çocuk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTHaber.tr" site_id="58d29bb0eefad3db9c606289">TRT Haber</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTKurdi.tr" site_id="58d29bb0eefad3db9c60624a">TRT Kurdi</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTMuzik.tr" site_id="58d29bb0eefad3db9c606266">TRT Müzik</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTSpor.tr" site_id="58d29bb0eefad3db9c6062a9">TRT Spor</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTSporYildiz.tr" site_id="5da87214cfef0b4df9157780">Trt Spor Yıldız</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TRTTurk.tr" site_id="58d29bb0eefad3db9c60624c">TRT Türk</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV4.tr" site_id="59dca577cfef0b4d80a47b7c">TV4</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV8.tr" site_id="58d29bb0eefad3db9c6062ae">TV8</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV85.tr" site_id="58d29bb0eefad3db9c6062cb">TV 8,5</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TV100.tr" site_id="5ccfd6adcfef0b6021816941">Tv 100</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="TVNET.tr" site_id="58d29bb0eefad3db9c60629e">TV Net</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="UlkeTV.tr" site_id="58d29bb0eefad3db9c60629f">Ülke TV</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="VavTV.tr" site_id="6071fb3bcfef0b159373a531">Vav Tv</channel>
<channel site="dsmart.com.tr" lang="tr" xmltv_id="ViasatHistory.tr" site_id="58d29bb0eefad3db9c6062bd">Viasat History</channel>
</channels>
+108 -82
View File
@@ -1,104 +1,130 @@
const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
const duration = require('dayjs/plugin/duration')
const doFetch = require('@ntlab/sfetch')
const debug = require('debug')('site:dsmart.com.tr')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
dayjs.extend(duration)
const API_ENDPOINT = 'https://www.dsmart.com.tr/api/v1/public/epg/schedules'
doFetch.setDebugger(debug)
const channelsWithSchedule = true
const pageLimit = 10
const caches = {}
module.exports = {
site: 'dsmart.com.tr',
days: 2,
url({ date, channel }) {
const [page] = channel.site_id.split('#')
return `${API_ENDPOINT}?page=${page}&limit=1&day=${date.format('YYYY-MM-DD')}`
request: {
cache: {
ttl: 24 * 60 * 60 * 1000 // 1 day
}
},
parser: function ({ content, channel }) {
let programs = []
const items = parseItems(content, channel)
items.forEach(item => {
const prev = programs[programs.length - 1]
let start
if (prev) {
start = parseStart(item, prev.stop)
} else {
start = parseStart(item, dayjs.utc(item.day))
url({ date, page = 1 }) {
return `https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=${
page
}&limit=${
pageLimit
}&day=${
date.format('YYYY-MM-DD')
}`
},
async parser({ content, channel, date, useCache = true }) {
const programs = []
if (content) {
if (typeof content === 'string') {
content = JSON.parse(content)
}
let duration = parseDuration(item)
let stop = start.add(duration, 's')
programs.push({
title: item.program_name,
category: parseCategory(item),
description: item.description.trim(),
start,
stop
})
})
if (useCache) {
const cacheKey = date.format('YYYYMMDD')
// cache whole channels for the day
if (caches[cacheKey] === undefined) {
if (content?.data?.total) {
const queues = []
const pages = Math.ceil(content.data.total / pageLimit)
for (let page = 2; page <= pages; page++) {
queues.push(module.exports.url({ date, page }))
}
await doFetch(queues, (url, res) => {
if (Array.isArray(res?.data?.channels)) {
content.data.channels.push(...res.data.channels)
}
})
caches[cacheKey] = content
}
} else {
content = caches[cacheKey]
}
}
if (Array.isArray(content?.data?.channels)) {
content.data.channels
.filter(i => i._id === channel.site_id)
.forEach(i => {
if (i.schedule.length) {
let dayStart, ofs
programs.push(...i.schedule
.map(p => {
const baseDate = dayjs.utc(p.day)
const startDate = dayjs.utc(p.start_date)
// calculate base offset if needed
if (!dayStart) {
dayStart = startDate
ofs = dayjs.duration(dayjs.utc(`${p.day.substr(0, 11)}${p.start_date.substr(11)}`).diff(baseDate))
.asSeconds()
}
const delta = dayjs.duration(startDate.diff(dayStart)).asSeconds()
// ignore days in duration
const [h, m, s] = (p.duration.includes(',') ? p.duration.split(',')[1].trim() : p.duration)
.split(':').map(Number)
const duration = (h * 3600) + (m * 60) + s
const start = baseDate.add(ofs + delta, 's')
const stop = start.add(duration, 's')
return {
title: p.program_name,
description: p.description,
category: p.genre && p.genre.includes('/') ?
p.genre.split('/').map(g => `${g.substr(0, 1).toUpperCase()}${g.substr(1)}`) : null,
start,
stop
}
})
)
}
})
}
}
return programs
},
async channels() {
const perPage = 1
const totalChannels = 210
const pages = Math.ceil(totalChannels / perPage)
const channels = []
for (let i in Array(pages).fill(0)) {
const page = parseInt(i) + 1
const url = `${API_ENDPOINT}?page=${page}&limit=${perPage}&day=${dayjs().format(
'YYYY-MM-DD'
)}`
let offset = i * perPage
await axios
.get(url)
.then(r => r.data)
.then(data => {
offset++
if (data && data.data && Array.isArray(data.data.channels)) {
data.data.channels.forEach((item, j) => {
const index = offset + j
channels.push({
lang: 'tr',
name: item.channel_name,
site_id: index + '#' + item._id
})
})
}
})
.catch(err => {
console.log(err.message)
})
}
const f = page => this.url({ date: dayjs(), page })
let pages, page = 1
const queues = [f(page)]
await doFetch(queues, (url, res) => {
if (!pages && res.data.total) {
pages = Math.ceil(res.data.total / pageLimit)
while (page <= pages) {
queues.push(f(++page))
}
}
if (Array.isArray(res?.data?.channels)) {
channels.push(...res.data.channels
.filter(i => (channelsWithSchedule && i.schedule.length) || !channelsWithSchedule)
.map(i => {
return {
lang: 'tr',
name: i.channel_name,
site_id: i._id
}
})
)
}
})
return channels
}
}
function parseCategory(item) {
return item.genre !== '0' ? item.genre : null
}
function parseStart(item, date) {
const time = dayjs.utc(item.start_date)
return dayjs.utc(`${date.format('YYYY-MM-DD')} ${time.format('HH:mm:ss')}`, 'YYYY-MM-DD HH:mm:ss')
}
function parseDuration(item) {
const [, H, mm, ss] = item.duration.match(/(\d+):(\d+):(\d+)$/)
return parseInt(H) * 3600 + parseInt(mm) * 60 + parseInt(ss)
}
function parseItems(content, channel) {
const [, channelId] = channel.site_id.split('#')
const data = JSON.parse(content)
if (!data || !data.data || !Array.isArray(data.data.channels)) return null
const channelData = data.data.channels.find(i => i._id == channelId)
return channelData && Array.isArray(channelData.schedule) ? channelData.schedule : []
}
+49 -32
View File
@@ -1,64 +1,81 @@
const { parser, url } = require('./dsmart.com.tr.config.js')
const axios = require('axios')
const dayjs = require('dayjs')
const fs = require('fs')
const path = require('path')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const date = dayjs.utc('2023-01-16', 'YYYY-MM-DD').startOf('d')
jest.mock('axios')
const date = dayjs.utc('2025-01-13', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '3#5fe07d7acfef0b1593275751',
xmltv_id: 'SinemaTV.tr'
site_id: '5fe07f5dcfef0b1593275822',
xmltv_id: 'Sinema1001.tr'
}
axios.get.mockImplementation(url => {
const result = {}
const urls = {
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=1&limit=10&day=2025-01-13':
'content1.json',
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=2&limit=10&day=2025-01-13':
'content2.json',
}
if (urls[url] !== undefined) {
result.data = fs.readFileSync(path.join(__dirname, '__data__', urls[url])).toString()
if (!urls[url].startsWith('content1')) {
result.data = JSON.parse(result.data)
}
}
return Promise.resolve(result)
})
it('can generate valid url', () => {
expect(url({ date, channel })).toBe(
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=3&limit=1&day=2023-01-16'
expect(url({ date })).toBe(
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=1&limit=10&day=2025-01-13'
)
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const results = parser({ channel, content }).map(p => {
it('can parse response', async () => {
const content = fs.readFileSync(path.join(__dirname, '__data__', 'content1.json')).toString()
const results = (await parser({ content, channel, date })).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results.length).toBe(11)
expect(results[0]).toMatchObject({
start: '2023-01-15T22:00:00.000Z',
stop: '2023-01-15T23:45:00.000Z',
title: 'Bizi Ayıran Her Şey',
category: 'sinema/genel',
start: '2025-01-12T21:30:00.000Z',
stop: '2025-01-12T23:30:00.000Z',
title: 'Taksi Şoförü',
description:
'Issızlığın ortasında yer alan orta sınıf bir evde bir anne kız yaşamaktadır. Çevrelerindeki taşları insanlarla yaşadıkları çatışmalar, anne-kızın hayatını olumsuz yönde etkilemektedir. Kızının ansızın ortadan kaybolması, bu çatışmaların seviyesini artıracak ve anne, kızını bulmak için her türlü yola başvuracaktır.'
'Vietnam savaşının izlerinin etkisindeki bir asker ve New York sokakları. Travis Bickle, geceleri taksi şoförlüğü yaptığı New York’ta bir yandan da gündelik yaşama ayak uydurmaya çalışır. Çürümeye yüz tutmuş bir topluma karşı tutulan bir ayna niteliğindeki film, yönetmen Martin Scorsese’nin kariyerinin en önemli filmlerinden biri olarak kabul görür.',
category: ['Sinema', 'Genel']
})
expect(results[1]).toMatchObject({
start: '2023-01-15T23:45:00.000Z',
stop: '2023-01-16T01:30:00.000Z',
title: 'Pixie',
category: 'sinema/genel',
expect(results[10]).toMatchObject({
start: '2025-01-13T19:00:00.000Z',
stop: '2025-01-13T21:00:00.000Z',
title: 'Senin Adın',
description:
'Annesinin intikamını almak isteyen Pixie, dahiyane bir soygun planlar. Fakat işler planladığı gibi gitmeyince kendini İrlanda’nın vahşi gangsterleri tarafından kovalanan iki adamla birlikte kaçarken bulur.'
})
expect(results[12]).toMatchObject({
start: '2023-01-16T20:30:00.000Z',
stop: '2023-01-16T22:30:00.000Z',
title: 'Seberg',
category: 'sinema/genel',
description:
'Başrolünde ünlü yıldız Kristen Stewart’ın yer aldığı politik gerilim, 1960’ların sonunda insan hakları aktivisti Hakim Jamal ile yaşadığı politik ve romantik ilişki sebebiyle FBI tarafından hedef alınan, Fransız Yeni Dalgası’nın sevilen yüzü ve Serseri Aşıklar’ın yıldızı Jean Seberg’ün çarpıcı hikayesini anlatıyor.'
'Dağların sardığı bir bölgede yaşayan Mitsuha, hayatından çok da memnun olmayan liseli bir kızdır. Babası vali olarak çalışmakta ve seçim kampanyaları ile uğraşmaktadır. Evde kendisi, kardeşi ve büyükannesi dışında kimse yoktur. Kırsal kesimdeki yaşamı onu bunaltmaktadır ve esas isteği Tokyo\'nun muhteşem şehir hayatının bir parçası olmaktır. Diğer tarafta ise Taki vardır.',
category: ['Sinema', 'Genel']
})
})
it('can handle empty guide', () => {
const results = parser({
it('can handle empty guide', async () => {
const results = await parser({
channel,
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json'))
date,
content: fs.readFileSync(path.join(__dirname, '__data__', 'no_content.json')).toString(),
useCache: false
})
expect(results).toMatchObject([])