AI prompts
base on M3U Playlist for free TV channels Free TV
=======
This is an M3U playlist for free TV channels around the World.
Either free locally (over the air):
[<img src="https://hatscripts.github.io/circle-flags/flags/us.svg" width="24">](lists/usa.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ca.svg" width="24">](lists/canada.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/gb.svg" width="24">](lists/uk.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ie.svg" width="24">](lists/ireland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/au.svg" width="24">](lists/australia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/in.svg" width="24">](lists/india.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/jp.svg" width="24">](lists/japan.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/cn.svg" width="24">](lists/china.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/hk.svg" width="24">](lists/hong_kong.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/mo.svg" width="24">](lists/macau.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/tw.svg" width="24">](lists/taiwan.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/kp.svg" width="24">](lists/north_korea.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/kr.svg" width="24">](lists/korea.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/dk.svg" width="24">](lists/denmark.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/fo.svg" width="24">](lists/faroe_islands.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/gl.svg" width="24">](lists/greenland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/fi.svg" width="24">](lists/finland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/is.svg" width="24">](lists/iceland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/no.svg" width="24">](lists/norway.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/se.svg" width="24">](lists/sweden.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ee.svg" width="24">](lists/estonia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/lv.svg" width="24">](lists/latvia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/lt.svg" width="24">](lists/lithuania.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/be.svg" width="24">](lists/belgium.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/nl.svg" width="24">](lists/netherlands.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/lu.svg" width="24">](lists/luxembourg.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/de.svg" width="24">](lists/germany.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/at.svg" width="24">](lists/austria.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ch.svg" width="24">](lists/switzerland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/pl.svg" width="24">](lists/poland.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/cz.svg" width="24">](lists/czech_republic.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/sk.svg" width="24">](lists/slovakia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/hu.svg" width="24">](lists/hungary.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ro.svg" width="24">](lists/romania.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/md.svg" width="24">](lists/moldova.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/bg.svg" width="24">](lists/bulgaria.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/fr.svg" width="24">](lists/france.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/it.svg" width="24">](lists/italy.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/pt.svg" width="24">](lists/portugal.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/es.svg" width="24">](lists/spain.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ru.svg" width="24">](lists/russia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/by.svg" width="24">](lists/belarus.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ua.svg" width="24">](lists/ukraine.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/az.svg" width="24">](lists/azerbaijan.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ge.svg" width="24">](lists/georgia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ba.svg" width="24">](lists/bosnia_and_herzegovina.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/hr.svg" width="24">](lists/croatia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/me.svg" width="24">](lists/montenegro.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/mk.svg" width="24">](lists/north_macedonia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/rs.svg" width="24">](lists/serbia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/si.svg" width="24">](lists/slovenia.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/al.svg" width="24">](lists/albania.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/xk.svg" width="24">](lists/kosovo.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/gr.svg" width="24">](lists/greece.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/cy.svg" width="24">](lists/cyprus.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ad.svg" width="24">](lists/andorra.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/mt.svg" width="24">](lists/malta.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/mc.svg" width="24">](lists/monaco.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/sm.svg" width="24">](lists/san_marino.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ir.svg" width="24">](lists/iran.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/iq.svg" width="24">](lists/iraq.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/il.svg" width="24">](lists/israel.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/qa.svg" width="24">](lists/qatar.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/tr.svg" width="24">](lists/turkey.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ae.svg" width="24">](lists/united_arab_emirates.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ar.svg" width="24">](lists/argentina.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/cr.svg" width="24">](lists/costa_rica.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/do.svg" width="24">](lists/dominican_republic.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/mx.svg" width="24">](lists/mexico.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/py.svg" width="24">](lists/paraguay.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/pe.svg" width="24">](lists/peru.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/ve.svg" width="24">](lists/venezuela.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/br.svg" width="24">](lists/brazil.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/tt.svg" width="24">](lists/trinidad.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/td.svg" width="24">](lists/chad.md)
[<img src="https://hatscripts.github.io/circle-flags/flags/so.svg" width="24">](lists/somalia.md)
Or free on the Internet:
- Plex TV
- Pluto TV (English, Spanish, French, Italian)
- Redbox Live TV
- Roku TV
- Samsung TV Plus
- Youtube live channels
To use it point your IPTV player to https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8.
Philosophy
==========
The main goals for this playlist are listed below.
**Quality over quantity**
The less channels we support the better.
- All channels should work well.
- As much as possible channels should be in HD, not SD.
- Only one URL per channel (no +1, no alternate feeds, no regional declinations)
**Only free channels**
If a channel is normally only available via commercial subscriptions it has nothing to do in this playlist. If on the other hand it is provided for free to everybody in a particular country, then it should be in this playlist.
- No paid channels
- Only channels which are officially provided for free (via DVB-S, DVB-T, analog, etc..)
**Only mainstream channels**
This is a playlist for everybody.
- No adult channels
- No channels dedicated to any particular religion
- No channels dedicated to any particular political party
- No channels made for a country and funded by a different country
Feed sources
============
It can be quite hard to find up to date URLs, here's a list of sources:
- https://github.com/iptv-org/iptv/tree/master/streams
- Youtube: As long as the channel is live and its URL doesn't change (check the age of the stream, the number of viewers..)
- Dailymotion: Same criteria as for youtube
Format
======
The m3u8 playlist is generated by `make_playlist.py`, using the `.md` files located in `lists`.
Each .md file represesnts a group. The `<h1>` line is used as the group title.
Only channels which URL column starts with `[>]` are included in the playlist.
Channels which are not in HD are marked with an `Ⓢ`.
Channels which use GeoIP blocking are marked with a `Ⓖ`.
Channels which are live Youtube channels are marked with a `Ⓨ`.
Issues
======
Only create issues for bugs and feature requests.
Do not create issues to add/edit or to remove channels. If you want to add/edit/remove channels, create a pull request directly.
Pull Requests
=============
**Only modify .md files**
If your Pull Request modifies channels, only modify .md files. Do not modify m3u8 files in your pull request.
**Adding a new Channel**
To add a new channel, make a Pull Request.
- In your Pull Request you need to provide information to show that the channel is free.
- Use imgur.com to host the channel logo and point to it.
- If you have a valid stream, add it and put `[>]` in front of it.
- If you don't have an stream for the channel, add `[x]()` in the url column and place your channel in the Invalid category.
- If you have a stream but it doesn't work well, put the channel in the Invalid category and put `[x]` in front of the url.
- If you're adding geoblocked URLs specify it in your PR and specify which country they're working in. The PR will only be merged if these URLs can be tested.
**Removing a Channel**
To remove a channel, make a Pull Request.
In your Pull Request you need to provide information to show that the channel is only available via a private paid subscription.
Note: Public taxes (whether national or regional, whether called TV License or not) do not constitute a private paid subscription.
If a stream is broken, simply move the channel to the invalid category and replace `[>]` with `[x]` in the url column.
", Assign "at most 3 tags" to the expected json: {"id":"9846","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"