{"id":357,"date":"2026-08-08T05:45:13","date_gmt":"2026-08-08T05:45:13","guid":{"rendered":"https:\/\/teocast.com\/?page_id=357"},"modified":"2026-08-08T05:45:13","modified_gmt":"2026-08-08T05:45:13","slug":"playlist-generator","status":"publish","type":"page","link":"https:\/\/teocast.com\/?page_id=357","title":{"rendered":"Playlist Generator"},"content":{"rendered":"\n<style>\n.tc-guide,\n.tc-guide *{\n  box-sizing:border-box;\n}\n\n.tc-guide{\n  --tc-blue:#1688ff;\n  --tc-blue-dark:#086ed5;\n  --tc-cyan:#2ed6d6;\n  --tc-navy:#07182d;\n  --tc-text:#10243d;\n  --tc-muted:#607286;\n  --tc-line:#dfe7f0;\n  --tc-soft:#f5f8fc;\n  width:100%;\n  margin:0;\n  padding:24px 20px 80px;\n  color:var(--tc-text);\n  background:var(--tc-soft);\n  font-family:Arial,Helvetica,sans-serif;\n}\n\n.tc-guide-container{\n  width:min(1180px,100%);\n  margin:0 auto;\n}\n\n.tc-guide-breadcrumb{\n  display:flex;\n  align-items:center;\n  flex-wrap:wrap;\n  gap:8px;\n  margin-bottom:18px;\n  color:var(--tc-muted);\n  font-size:13px;\n  font-weight:700;\n}\n\n.tc-guide-breadcrumb a{\n  color:var(--tc-blue);\n  text-decoration:none;\n}\n\n.tc-guide-hero{\n  padding:52px 42px;\n  border-radius:22px;\n  color:#ffffff;\n  background:\n    radial-gradient(circle at 15% 10%,rgba(46,214,214,.2),transparent 31%),\n    linear-gradient(135deg,#07182d,#0d3155);\n  box-shadow:0 22px 55px rgba(7,24,45,.16);\n}\n\n.tc-guide-label{\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  padding:9px 15px;\n  margin-bottom:20px;\n  border:1px solid rgba(255,255,255,.18);\n  border-radius:999px;\n  color:#bceeff;\n  background:rgba(255,255,255,.07);\n  font-size:12px;\n  font-weight:900;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n.tc-guide-label::before{\n  content:\"\";\n  width:8px;\n  height:8px;\n  border-radius:50%;\n  background:var(--tc-cyan);\n  box-shadow:0 0 12px rgba(46,214,214,.8);\n}\n\n.tc-guide-hero h2{\n  max-width:820px;\n  margin:0 0 16px;\n  color:#ffffff;\n  font-size:46px;\n  line-height:1.1;\n  letter-spacing:-1.4px;\n}\n\n.tc-guide-hero p{\n  max-width:840px;\n  margin:0;\n  color:#c9d8e9;\n  font-size:18px;\n  line-height:1.75;\n}\n\n.tc-guide-meta{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  margin-top:24px;\n}\n\n.tc-guide-meta span{\n  display:inline-flex;\n  align-items:center;\n  min-height:36px;\n  padding:0 13px;\n  border:1px solid rgba(255,255,255,.15);\n  border-radius:999px;\n  color:#dceafa;\n  background:rgba(255,255,255,.06);\n  font-size:12px;\n  font-weight:800;\n}\n\n.tc-guide-layout{\n  display:grid;\n  grid-template-columns:250px minmax(0,1fr);\n  gap:28px;\n  align-items:start;\n  margin-top:30px;\n}\n\n.tc-guide-toc{\n  position:sticky;\n  top:105px;\n  padding:21px;\n  border:1px solid var(--tc-line);\n  border-radius:16px;\n  background:#ffffff;\n  box-shadow:0 12px 30px rgba(19,43,69,.06);\n}\n\n.tc-guide-toc strong{\n  display:block;\n  margin-bottom:13px;\n  color:var(--tc-text);\n  font-size:14px;\n}\n\n.tc-guide-toc a{\n  display:block;\n  padding:9px 10px;\n  border-radius:8px;\n  color:var(--tc-muted);\n  font-size:13px;\n  font-weight:700;\n  line-height:1.4;\n  text-decoration:none;\n}\n\n.tc-guide-toc a:hover{\n  color:var(--tc-blue);\n  background:#eef6ff;\n}\n\n.tc-guide-content{\n  min-width:0;\n}\n\n.tc-guide-section{\n  margin-bottom:22px;\n  padding:32px;\n  border:1px solid var(--tc-line);\n  border-radius:18px;\n  background:#ffffff;\n  box-shadow:0 12px 30px rgba(19,43,69,.06);\n  scroll-margin-top:105px;\n}\n\n.tc-guide-section h2{\n  margin:0 0 13px;\n  color:var(--tc-text);\n  font-size:29px;\n  line-height:1.2;\n  letter-spacing:-.4px;\n}\n\n.tc-guide-section > p{\n  margin:0 0 20px;\n  color:var(--tc-muted);\n  font-size:15px;\n  line-height:1.75;\n}\n\n.tc-guide-steps{\n  display:grid;\n  gap:14px;\n}\n\n.tc-guide-step{\n  display:grid;\n  grid-template-columns:44px minmax(0,1fr);\n  gap:15px;\n  align-items:start;\n  padding:18px;\n  border:1px solid #e4ebf3;\n  border-radius:13px;\n  background:#f9fbfe;\n}\n\n.tc-guide-step-number{\n  width:44px;\n  height:44px;\n  display:grid;\n  place-items:center;\n  border-radius:12px;\n  color:#ffffff;\n  background:linear-gradient(135deg,var(--tc-blue),var(--tc-cyan));\n  box-shadow:0 8px 18px rgba(22,136,255,.2);\n  font-weight:900;\n}\n\n.tc-guide-step h3{\n  margin:0 0 6px;\n  color:var(--tc-text);\n  font-size:16px;\n  line-height:1.35;\n}\n\n.tc-guide-step p{\n  margin:0;\n  color:var(--tc-muted);\n  font-size:14px;\n  line-height:1.65;\n}\n\n.tc-guide-grid{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:14px;\n}\n\n.tc-guide-card{\n  padding:20px;\n  border:1px solid #e2eaf2;\n  border-radius:13px;\n  background:#f9fbfe;\n}\n\n.tc-guide-card h3{\n  margin:0 0 8px;\n  color:var(--tc-text);\n  font-size:16px;\n}\n\n.tc-guide-card p{\n  margin:0;\n  color:var(--tc-muted);\n  font-size:14px;\n  line-height:1.65;\n}\n\n.tc-guide-checklist{\n  display:grid;\n  gap:11px;\n  margin:0;\n  padding:0;\n  list-style:none;\n}\n\n.tc-guide-checklist li{\n  position:relative;\n  padding-left:31px;\n  color:var(--tc-text);\n  font-size:14px;\n  line-height:1.6;\n}\n\n.tc-guide-checklist li::before{\n  content:\"\u2713\";\n  position:absolute;\n  left:0;\n  top:1px;\n  width:21px;\n  height:21px;\n  display:grid;\n  place-items:center;\n  border-radius:50%;\n  color:#ffffff;\n  background:var(--tc-blue);\n  font-size:12px;\n  font-weight:900;\n}\n\n.tc-guide-note{\n  margin-top:20px;\n  padding:18px 19px;\n  border-left:4px solid var(--tc-blue);\n  border-radius:10px;\n  color:#27415d;\n  background:#eef6ff;\n  font-size:14px;\n  line-height:1.65;\n}\n\n.tc-guide-note strong{\n  color:#0d2d50;\n}\n\n.tc-guide-warning{\n  margin-top:20px;\n  padding:18px 19px;\n  border-left:4px solid #f0a623;\n  border-radius:10px;\n  color:#5e4820;\n  background:#fff8e9;\n  font-size:14px;\n  line-height:1.65;\n}\n\n.tc-guide-next{\n  display:grid;\n  grid-template-columns:1fr auto;\n  gap:22px;\n  align-items:center;\n  margin-top:26px;\n  padding:30px;\n  border-radius:18px;\n  color:#ffffff;\n  background:linear-gradient(135deg,#0a203b,#103b62);\n}\n\n.tc-guide-next h2{\n  margin:0 0 8px;\n  color:#ffffff;\n  font-size:27px;\n}\n\n.tc-guide-next p{\n  margin:0;\n  color:#c9d8e9;\n  line-height:1.65;\n}\n\n.tc-guide-button{\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  min-height:48px;\n  padding:0 22px;\n  border-radius:8px;\n  color:#ffffff;\n  background:var(--tc-blue);\n  box-shadow:0 10px 25px rgba(22,136,255,.25);\n  font-weight:800;\n  text-decoration:none;\n  white-space:nowrap;\n}\n\n.tc-guide-button:hover{\n  color:#ffffff;\n  background:var(--tc-blue-dark);\n}\n\n.tc-guide-back{\n  display:inline-flex;\n  margin-top:18px;\n  color:var(--tc-blue);\n  font-size:14px;\n  font-weight:800;\n  text-decoration:none;\n}\n\n@media(max-width:900px){\n  .tc-guide-layout{\n    grid-template-columns:1fr;\n  }\n\n  .tc-guide-toc{\n    position:relative;\n    top:auto;\n  }\n\n  .tc-guide-toc nav{\n    display:grid;\n    grid-template-columns:repeat(2,minmax(0,1fr));\n    gap:4px;\n  }\n}\n\n@media(max-width:620px){\n  .tc-guide{\n    padding:14px 13px 55px;\n  }\n\n  .tc-guide-hero{\n    padding:40px 22px;\n    text-align:center;\n  }\n\n  .tc-guide-hero h2{\n    margin-left:auto;\n    margin-right:auto;\n    font-size:35px;\n  }\n\n  .tc-guide-hero p{\n    font-size:16px;\n  }\n\n  .tc-guide-meta{\n    justify-content:center;\n  }\n\n  .tc-guide-toc nav{\n    grid-template-columns:1fr;\n  }\n\n  .tc-guide-section{\n    padding:24px 19px;\n  }\n\n  .tc-guide-section h2{\n    font-size:25px;\n    text-align:center;\n  }\n\n  .tc-guide-section > p{\n    text-align:center;\n  }\n\n  .tc-guide-grid{\n    grid-template-columns:1fr;\n  }\n\n  .tc-guide-step{\n    text-align:left;\n  }\n\n  .tc-guide-checklist{\n    width:min(100%,430px);\n    margin-left:auto;\n    margin-right:auto;\n    text-align:left;\n  }\n\n  .tc-guide-next{\n    grid-template-columns:1fr;\n    text-align:center;\n  }\n\n  .tc-guide-button{\n    width:100%;\n  }\n}\n<\/style>\n<div class=\"tc-guide\">\n  <div class=\"tc-guide-container\">\n    <div class=\"tc-guide-breadcrumb\">\n      <a href=\"\/?pagename=documentation\">Documentation<\/a><span>\u203a<\/span><span>Playlist Generator<\/span>\n    <\/div>\n    <section class=\"tc-guide-hero\">\n      <span class=\"tc-guide-label\">Playlist Generator<\/span>\n      <h2>Generate balanced playlists from your TeoCast library<\/h2>\n      <p>Use Playlist Generator to build a ready-to-review sequence from eligible library content. It helps you prepare a playlist faster while you keep control over the final on-air order.<\/p>\n      <div class=\"tc-guide-meta\">\n        <span>Playlist Planning<\/span><span>Library-Based Workflow<\/span><span>About 10 Minutes<\/span>\n      <\/div>\n    <\/section>\n    <div class=\"tc-guide-layout\">\n      <aside class=\"tc-guide-toc\">\n        <strong>On this page<\/strong>\n        <nav>\n          <a href=\"#before-you-start\">Before you start<\/a>\n          <a href=\"#configure\">Configure the generator<\/a>\n          <a href=\"#generate\">Generate and review<\/a>\n          <a href=\"#apply\">Apply the playlist<\/a>\n          <a href=\"#quality-check\">Quality check<\/a>\n          <a href=\"#troubleshooting\">Common problems<\/a>\n        <\/nav>\n      <\/aside>\n      <main class=\"tc-guide-content\">\n        <section class=\"tc-guide-section\" id=\"before-you-start\">\n          <h2>Prepare the library first<\/h2>\n          <p>Playlist Generator can only work with the audio that is available and organized in your TeoCast library. Review the source content before you generate a playlist.<\/p>\n          <ul class=\"tc-guide-checklist\">\n            <li>Import the music and station content you intend to use.<\/li>\n            <li>Confirm that titles, artists, categories and durations are correct.<\/li>\n            <li>Remove outdated, duplicate or unsuitable tracks from the source selection.<\/li>\n            <li>Keep commercials and scheduled station elements in their normal workflow unless they are intentionally part of this playlist.<\/li>\n          <\/ul>\n          <div class=\"tc-guide-note\"><strong>Tip:<\/strong> A well-organized library gives the generator more useful choices and reduces manual cleanup afterward.<\/div>\n        <\/section>\n\n        <section class=\"tc-guide-section\" id=\"configure\">\n          <h2>Configure the Playlist Generator<\/h2>\n          <p>Open Playlist Generator and define the type of sequence you want TeoCast to prepare. Use only settings that match the purpose of the broadcast hour or program.<\/p>\n          <div class=\"tc-guide-steps\">\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">1<\/span><div><h3>Open Playlist Generator<\/h3><p>Start from the playlist or library workflow, then open the Playlist Generator controls.<\/p><\/div><\/div>\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">2<\/span><div><h3>Choose the source content<\/h3><p>Select the relevant library category, rotation group or available source options for the playlist you need.<\/p><\/div><\/div>\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">3<\/span><div><h3>Set the target size<\/h3><p>Choose the desired number of items, duration or available generator target for the planned segment.<\/p><\/div><\/div>\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">4<\/span><div><h3>Review repeat and separation options<\/h3><p>When available, use repeat, artist-separation or category rules that suit your station format.<\/p><\/div><\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"tc-guide-section\" id=\"generate\">\n          <h2>Generate and review the result<\/h2>\n          <p>Generate the playlist, then treat the result as a planned sequence that still needs an on-air review.<\/p>\n          <div class=\"tc-guide-steps\">\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">1<\/span><div><h3>Run the generator<\/h3><p>Start the generation process and allow TeoCast to create the proposed track order.<\/p><\/div><\/div>\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">2<\/span><div><h3>Check titles and flow<\/h3><p>Review the songs, artists, durations and overall energy of the generated list before using it.<\/p><\/div><\/div>\n            <div class=\"tc-guide-step\"><span class=\"tc-guide-step-number\">3<\/span><div><h3>Make manual corrections<\/h3><p>Move, remove or replace any item that does not fit the current program, audience or station policy.<\/p><\/div><\/div>\n          <\/div>\n          <div class=\"tc-guide-warning\"><strong>Always review before air:<\/strong> Playlist Generator accelerates preparation, but the broadcaster remains responsible for the final music and station-content order.<\/div>\n        <\/section>\n\n        <section class=\"tc-guide-section\" id=\"apply\">\n          <h2>Apply or save the generated playlist<\/h2>\n          <p>When the order is ready, use the available Playlist Generator action to place the result in the Playlist Queue or save it for later use.<\/p>\n          <div class=\"tc-guide-grid\">\n            <div class=\"tc-guide-card\"><h3>Use in the current queue<\/h3><p>Add the reviewed result to the active playlist only after confirming it will not replace content you still need on air.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>Save for a future program<\/h3><p>Save the final selection with a clear name that identifies the program, date, format or rotation purpose.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>Use with Scheduler<\/h3><p>For clock-based automation, keep the generated music plan aligned with the appropriate Music Clock and scheduled advertising workflow.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>Keep a backup plan<\/h3><p>Retain a reusable saved playlist or library pool for live substitutions and unexpected programming changes.<\/p><\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"tc-guide-section\" id=\"quality-check\">\n          <h2>Final on-air quality check<\/h2>\n          <p>Before playback, confirm that the list is suitable for the current broadcast segment.<\/p>\n          <ul class=\"tc-guide-checklist\">\n            <li>No unsuitable repeats, duplicate tracks or back-to-back artist conflicts.<\/li>\n            <li>The total length suits the available program time.<\/li>\n            <li>Station IDs, sweepers, commercials and voice breaks are handled in the intended workflow.<\/li>\n            <li>The first upcoming item is correct before starting or continuing playback.<\/li>\n          <\/ul>\n        <\/section>\n\n        <section class=\"tc-guide-section\" id=\"troubleshooting\">\n          <h2>Common Playlist Generator problems<\/h2>\n          <div class=\"tc-guide-grid\">\n            <div class=\"tc-guide-card\"><h3>Too few tracks are generated<\/h3><p>Broaden the selected source, add more eligible music to the library, or reduce restrictive generator rules.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>Unexpected tracks appear<\/h3><p>Review the selected category or source pool, then remove unsuitable items from that group before generating again.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>The order needs changes<\/h3><p>Use manual playlist editing after generation. The generator is intended to speed up preparation, not remove editorial control.<\/p><\/div>\n            <div class=\"tc-guide-card\"><h3>Playlist does not fit the hour<\/h3><p>Adjust the target duration or item count, then generate a new result and account for scheduled breaks.<\/p><\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"tc-guide-next\">\n          <div><h2>Continue with Advanced Scheduler<\/h2><p>Learn how to place music rotations and advertising breaks into a complete 24-hour broadcast workflow.<\/p><\/div>\n          <a class=\"tc-guide-button\" href=\"\/?pagename=documentation\/advanced-scheduler\">Next Guide \u2192<\/a>\n        <\/section>\n        <a class=\"tc-guide-back\" href=\"\/?pagename=documentation\">\u2190 Back to Documentation<\/a>\n      <\/main>\n    <\/div>\n  <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Documentation\u203aPlaylist Generator Playlist Generator Generate balanced playlists from your TeoCast library Use Playlist Generator to build a ready-to-review sequence from eligible library content. It helps you prepare a playlist faster while you keep control over the final on-air order. Playlist PlanningLibrary-Based WorkflowAbout 10 Minutes On this page Before you start Configure the generator Generate and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":172,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-357","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/pages\/357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/teocast.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=357"}],"version-history":[{"count":1,"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/pages\/357\/revisions"}],"predecessor-version":[{"id":358,"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/pages\/357\/revisions\/358"}],"up":[{"embeddable":true,"href":"https:\/\/teocast.com\/index.php?rest_route=\/wp\/v2\/pages\/172"}],"wp:attachment":[{"href":"https:\/\/teocast.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}